halkyon_base: a Serverpod module for sign-in, accounts and instance basics
What every Halkyon server has, taken from Halkyon Learn's: anonymous, GitHub and email-code sign-in with their endpoints, an account's ways in and its deletion, the pruning of abandoned anonymous people, of sign-up attempts and of expired codes, and the instance's basics (the sign-in ways offered, the source link, the minimum app build, where people's data and its backups are). Endpoints sit under the nickname `base`. A host configures it in one place before its pod starts: its name for the mails, its source link, its minimum build, and hooks that delete its own data with a person. The tables keep Learn's names, columns and indexes, so a host moving onto the module migrates nothing but version rows. Server package under the SSPL, client under the AGPL, as Learn's are. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
80fa7b9628
commit
af1de799f4
2 changed files with 17704 additions and 3 deletions
7
packages/halkyon_base_server/config/generator.yaml
Normal file
7
packages/halkyon_base_server/config/generator.yaml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
type: module
|
||||
# The name its endpoints have in a host's client (`client.base.emailCode`);
|
||||
# a host may choose another in its own generator.yaml.
|
||||
nickname: base
|
||||
|
||||
client_package_path: ../halkyon_base_client
|
||||
server_test_tools_path: test/integration/test_tools
|
||||
40
packages/halkyon_base_server/config/test.yaml
Normal file
40
packages/halkyon_base_server/config/test.yaml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# The module's test server: every port 0, so the tests find free ones and can run
|
||||
# side by side. The database is the embedded PostgreSQL Serverpod starts and
|
||||
# manages itself (`dataPath`): no Docker needed, `dart test` is enough. Its password
|
||||
# and the tests' other secrets are in config/passwords.yaml (git-ignored; see the
|
||||
# README for the keys).
|
||||
|
||||
apiServer:
|
||||
port: 0
|
||||
publicHost: localhost
|
||||
publicPort: 0
|
||||
publicScheme: http
|
||||
|
||||
insightsServer:
|
||||
port: 0
|
||||
publicHost: localhost
|
||||
publicPort: 0
|
||||
publicScheme: http
|
||||
|
||||
webServer:
|
||||
port: 0
|
||||
publicHost: localhost
|
||||
publicPort: 0
|
||||
publicScheme: http
|
||||
|
||||
database:
|
||||
host: localhost
|
||||
port: 9090
|
||||
name: halkyon_base_test
|
||||
user: postgres
|
||||
dataPath: .serverpod/test/pgdata
|
||||
|
||||
redis:
|
||||
enabled: false
|
||||
host: localhost
|
||||
port: 9091
|
||||
|
||||
# Session logs are never kept, for privacy, as on every Halkyon server.
|
||||
sessionLogs:
|
||||
persistentEnabled: false
|
||||
consoleEnabled: true
|
||||
Loading…
Reference in a new issue