feat: add TypeBox/Ajv config schema package to the workspace (E00-S04-T01)
Adds packages/config (@personal-blog/config) — the EPPP configuration service foundation. The package defines the configuration schema with TypeBox (configSchema: host, port, databaseUrl, sessionSecret — the validated config fields, golden-tuple pins @sinclair/typebox@0.34.52 and ajv@8.20.0) and compiles it with Ajv (validateConfig). The environment adapter (T04), field-specific startup errors (T02) and secret redaction (T03) build on this boundary in later tasks; nothing reads process.env yet. Wiring for the new workspace package: lockfile importer + resolved typebox/ajv tree, apps/server/Dockerfile manifest copy (frozen in-image install must match the lockfile importers), config-schema CI job, package set fixtures (workspace-layout, workspace-config, strict-tsconfig, typescript-pin), probe-file gitignore entry.
This commit is contained in:
@@ -57,11 +57,12 @@ RUN corepack enable
|
||||
# invalidate the dependency layer, then install against the committed lockfile
|
||||
# (the same `--frozen-lockfile` path CI and developers use). Every workspace
|
||||
# package manifest is copied so the in-image workspace matches the lockfile
|
||||
# importers exactly (apps/server, packages/core, packages/database-postgres,
|
||||
# extensions/example).
|
||||
# importers exactly (apps/server, packages/core, packages/config,
|
||||
# packages/database-postgres, extensions/example).
|
||||
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig.base.json ./
|
||||
COPY apps/server/package.json apps/server/package.json
|
||||
COPY packages/core/package.json packages/core/package.json
|
||||
COPY packages/config/package.json packages/config/package.json
|
||||
COPY packages/database-postgres/package.json packages/database-postgres/package.json
|
||||
COPY extensions/example/package.json extensions/example/package.json
|
||||
RUN pnpm install --frozen-lockfile
|
||||
|
||||
Reference in New Issue
Block a user