Skip to content

Commit 8e321be

Browse files
committed
Update readme and add api-docs.yml
1 parent 06dd01c commit 8e321be

File tree

2 files changed

+108
-1
lines changed

2 files changed

+108
-1
lines changed

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ make install
2222

2323
## Configuration
2424

25-
Configuration is defined in the `config.json`. Properties are explained below. All paths are relative to the `resources` directory
25+
Configuration is defined in the `config.json`. Properties are explained below. Full paths must be provided
2626

2727
- `CAPrivateKey` - Name of the CA private key. The key must be unencrypted - a future enhancement will allow encrypted keys
2828
- `CAPublicKey` - Name of the CA public key.
@@ -32,6 +32,12 @@ Configuration is defined in the `config.json`. Properties are explained below. A
3232
- `db.password` - Password of the DB user
3333
- `db.connection` - Connection URL for the DB. For sqlite3 this is a file path
3434
- `db.dbName` - Name of the DB
35+
- `tls.local` - When set to `true` the server will generate a local TLS certificate. When `false` the server will generate a Let's Encrypt cert
36+
- `tls.certDir` - Directory in which the generated certificate will be generated
37+
- `tls.certDomains` - A list of domains to be included in the certificate.
38+
- `tls.certEmail` - Needed when generating a certificate with let's encrypt
39+
- `tls.dnsProvider` - Only `cloudflare` is supported at the moment. A future release will open up support for other providers
40+
- `tls.dnsAPIToken` - The zone API token from cloudflare
3541

3642
## Goals
3743

api-docs.yaml

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
swagger: "2.0"
2+
info:
3+
title: SSH-Sentinel
4+
description: Sentinel API
5+
version: 1.0.0
6+
host: localhost:443
7+
consumes:
8+
- application/json
9+
produces:
10+
- application/json
11+
- text/plain
12+
schemes:
13+
- https
14+
basePath: /
15+
16+
definitions:
17+
KeySignRequest:
18+
type: object
19+
description: A signing request
20+
properties:
21+
username:
22+
type: string
23+
example: testUser-1
24+
description: The client username ( with the service )
25+
api_key:
26+
type: string
27+
pattern: [a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}
28+
example: c7ce5f4a-ae6b-4232-a458-62855d0b9f29
29+
description: The API Key provided by the service at registration
30+
principals:
31+
type: array
32+
description: A list of usernames to be included with the certificate. Usernames are with the target services
33+
key:
34+
type: string
35+
description: The public key to sign
36+
KeySignResponse:
37+
type: object
38+
description: A signing response
39+
properties:
40+
success:
41+
type: boolean
42+
description: Indicates if the the request was a success
43+
example: false
44+
message:
45+
type: string
46+
description: Any message / info returned by the server ( e.g. an error message )
47+
example: "Authentication failure"
48+
signedKey:
49+
type: string
50+
description: The signed key / certificate
51+
notBefore:
52+
type: integer
53+
description: UNIX Epoch of the certificate start time
54+
example: 1666793056
55+
notAfter:
56+
type: integer
57+
description: UNIX Epoch of the certificate end time
58+
example: 1666793056
59+
Pong:
60+
type: string
61+
62+
63+
64+
paths:
65+
/ping:
66+
get:
67+
summary: A Ping test
68+
produces:
69+
- text/plain
70+
security: []
71+
responses:
72+
200:
73+
description: A successful response
74+
schema:
75+
$ref: "#/definitions/Pong"
76+
headers:
77+
content-type:
78+
type: string
79+
x-example: text/plain; charset=utf-8
80+
/ssh:
81+
post:
82+
summary: Performs signing
83+
produces:
84+
- application/json
85+
security: []
86+
parameters:
87+
- name: Request body
88+
in: body
89+
required: true
90+
schema:
91+
$ref: "#/definitions/KeySignRequest"
92+
responses:
93+
200:
94+
description: Successful request
95+
schema:
96+
$ref: "#/definitions/KeySignResponse"
97+
401:
98+
description: Unauthorized
99+
schema:
100+
$ref: "#/definitions/KeySignResponse"
101+

0 commit comments

Comments
 (0)