This section is the authoritative progress snapshot for this document scope.
- Phase 1 foundation work for server multi-database hosting.
- Configuration-first validation and hardening for secure startup behavior.
- Planning and sequencing follow-up implementation for runtime routing and system database initialization.
- Multi-database hosting model is defined in configuration.
- Database entry contract is defined (
Name,DatabasePath,StorageMode, encryption, pool size, system/read-only flags). - Startup validation rules are defined and enforced at startup:
- At least one database must be configured.
DefaultDatabasemust exist inDatabases.- Database names must be unique (case-insensitive).
- If system databases are enabled, all configured system database names must exist.
- System database responsibilities are documented (
master,model,msdb,tempdb). - HTTPS/TLS-only security posture is defined and enforced:
- Plain HTTP is not supported.
- TLS must be enabled.
- Certificate path is required.
- Minimum TLS policy supports
Tls12/Tls13.
- Kestrel endpoint policy is defined:
- gRPC over HTTPS (HTTP/2).
- Optional management API over HTTPS only.
- Runtime database routing across all requests and sessions.
- Automatic schema/bootstrap initialization for system databases.
- Per-database authorization model and policy enforcement.
- Full operational behaviors for
msdbjobs/schedules automation. - Full
tempdblifecycle management policies (creation/reset/cleanup semantics). - End-to-end production hardening and complete implementation of all follow-up phase items.
- Event sourcing implementation (tracked separately as optional package work).
- Benchmarking program against BLite/Zvec (tracked separately).
SharpCoreDB Server supports hosting multiple databases in a single server process, including optional system databases inspired by SQL Server conventions.
This document describes:
- multi-database hosting model,
- system database responsibilities,
- mandatory HTTPS/TLS security posture.
Server configuration uses:
DefaultDatabase: fallback database name when client does not specify one.Databases: explicit list of hosted database instances.
Each database entry supports:
Name(logical database name)DatabasePath(physical storage path)StorageModeEncryptionEnabled+EncryptionKeyFileConnectionPoolSizeIsSystemDatabaseIsReadOnly
Validation rules enforced at startup:
- At least one database must be configured.
DefaultDatabasemust exist inDatabases.- Database names must be unique (case-insensitive).
- If system databases are enabled, all configured system database names must exist.
When SystemDatabases.Enabled = true, the following logical system databases are expected:
master: server-level metadata and global catalog.model: template database used as baseline metadata/profile for new databases.msdb: operational metadata, jobs, schedules, and automation state.tempdb: temporary objects and transient workloads.
These are configurable by name through:
MasterDatabaseNameModelDatabaseNameMsdbDatabaseNameTempDbDatabaseName
SharpCoreDB Server is configured for secure transport only:
- Plain HTTP endpoints are not supported.
- TLS must be enabled (
Security.TlsEnabled = true). - A TLS certificate path is required.
- Minimum TLS version policy is enforced through
Security.MinimumTlsVersion:Tls12(default; allows TLS 1.2 and TLS 1.3)Tls13(strict)
Kestrel endpoint policy:
- gRPC endpoint runs over HTTPS with HTTP/2.
- Optional management API endpoint runs over HTTPS only.
RequireAuthentication = trueAuthMethods = ["jwt", "certificate"]TlsEnabled = trueMinimumTlsVersion = "Tls12"or"Tls13"- Encrypt all persistent databases except
tempdbif temporary-only workload policy allows plaintext.
This is the foundational model for Phase 1. Runtime database routing, system-db schema initialization, and authorization per database will be implemented in follow-up phases.