dashboard/src/start.ts

43 lines
1.6 KiB
TypeScript

import { load_conf, validate_conf } from './conf';
import { create_oidc_provider } from './security/openid-connect';
import { create_pkce_cookie_provider } from './security/pkce-cookie';
import { create_snowflake_provider } from './utilities/snowflake-uid';
import { create_storage_provider } from './storage';
import { create_argon_hash_provider } from './security/argon-hash';
import { create_http_metadata_server } from './http-metadata/server';
import { create_logger } from './logger';
import { create_http_web_server } from './http-web/server';
import { create_session_key_provider } from './security/session-key';
main();
async function main() {
// Load and validate configuration
const conf = await load_conf();
validate_conf(conf);
// Create all of the core feature providers
const logger = create_logger(conf.logging);
// const oidc = create_oidc_provider(conf.oidc);
const pkce_cookie = create_pkce_cookie_provider(conf.pkce_cookie);
// const session_cookie = create_session_cookie_provider(conf.session_cookie);
const snowflake = create_snowflake_provider(conf.snowflake_uid);
const storage = create_storage_provider(conf.storage);
const argon2 = create_argon_hash_provider(conf.argon2);
const session_key = create_session_key_provider(argon2);
// Wait for any async init steps
// await oidc.ready;
await storage.ready;
// Perform any cleanup steps before starting up
await storage.cleanup_old_sessions();
// Create the HTTP servers
const http_meta = create_http_metadata_server(null, logger);
const http_web = create_http_web_server(null, logger);
// ...
}