work on security features, logger, snowflakes, http servers

This commit is contained in:
2023-07-19 22:02:14 -07:00
parent e26ba0297a
commit 13457ec125
25 changed files with 1875 additions and 97 deletions

View File

@@ -1,10 +1,10 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://json-schema.jbrumond.me/config",
"$id": "./schemas/config.json",
"title": "Configuration for app service",
"type": "object",
"properties": {
"web": {
"http_web": {
"title": "Web Server Config",
"description": "Configuration for the main HTTP(S) server",
"type": "object",
@@ -67,13 +67,9 @@
"static_assets": { "$ref": "#/$defs/cache_control_directives" }
}
}
},
"required": [
"address",
"port"
]
}
},
"metadata": {
"http_meta": {
"title": "Metadata API Config",
"description": "Configuration for the secondary metadata HTTP(S) server, used for health checks and other service meta-APIs",
"type": "object",
@@ -105,11 +101,32 @@
}
]
}
},
"required": [
"address",
"port"
]
}
},
"logging": {
"title": "Logging Config",
"description": "Configuration that controls the service's log output",
"type": "object",
"properties": {
"level": {
"description": "",
"type": "string",
"enum": [
"silent",
"fatal",
"error",
"warn",
"info",
"debug",
"trace"
]
},
"pretty": {
"title": "",
"description": "",
"type": "boolean"
}
}
},
"oidc": {
"title": "OpenID Connect (OIDC) Config",
@@ -140,8 +157,7 @@
"description": "",
"type": "string"
}
},
"required": [ ]
}
},
"pkce_cookie": {
"title": "PKCE Cookie Config",
@@ -165,6 +181,15 @@
"description": "Time-to-live for the PKCE code cookie (in seconds)",
"type": "integer",
"default": 600
},
"code_bytes": {
"title": "PKCE Code Input Bytes",
"description": "Number of bytes of random data to generate for the verification code (more is stronger, must be in range 32-96)",
"type": "integer",
"minimum": 32,
"maximum": 96,
"example": 48,
"default": 48
}
}
},
@@ -192,13 +217,15 @@
"default": 7200
}
}
},
"storage": {
"title": "Storage Config",
"description": "Configuration for the main application data storage layer",
"oneOf": [
{ "$ref": "#/$defs/file_storage_config" }
]
}
},
"required": [
"web",
"metadata",
"oidc"
],
"$defs": {
"etag_type": {
"type": "string",
@@ -212,6 +239,18 @@
"description": "A full `Cache-Control` directives string",
"type": "string",
"example": "public, max-age=3600"
},
"file_storage_config": {
"type": "object",
"properties": {
"engine": {
"type": "string",
"const": "file"
}
},
"required": [
"engine"
]
}
}
}