import 'package:halkyon_base_server/base.dart'; import 'package:halkyon_todo_server/src/generated/serverpod.dart'; import 'package:halkyon_todo_server/src/pruning.dart'; import 'package:halkyon_todo_server/src/todo_base.dart'; import 'package:serverpod_auth_idp_server/core.dart'; /// The starting point of Halkyon Todo's server. Future run(List args) async { // The generated Serverpod is already connected with the generated code. final pod = Serverpod(args); // What every Halkyon server has (ADR 0014): sign-in, the account and its // deletion, the pruning, the instance's basics, set up for Todo; a member // of the instance's register where the operator names one (ADR 0016). HalkyonBase.configure( pod, todoBase(accounts: AccountsMode.fromEnvironment()), ); // Token managers validate and issue authentication keys; identity // providers are the ways people can sign in (halkyon_base's // auth_config.dart). pod.initializeAuthServices( tokenManagerBuilders: tokenManagerBuilders, identityProviderBuilders: identityProviderBuilders(pod), ); // The calls between the instance's services, on the web server // (ADR 0016); Caddy never forwards them. addInstanceRoutes(pod); await pod.start(); await schedulePruning(pod); }