docs: document the config package in the non-container guide (E00-S04-T01)
CI / Frozen lockfile install (pull_request) Successful in 47s
CI / Secrets not embedded (E00-S02-T08) (pull_request) Successful in 26s
CI / Database-postgres import isolation (E00-S03-T02) (pull_request) Successful in 31s
CI / Migration ledger (E00-S03-T03) (pull_request) Successful in 41s
CI / Migration advisory lock (E00-S03-T04) (pull_request) Successful in 42s
CI / Migration failure diagnostic (E00-S03-T05) (pull_request) Successful in 46s
CI / App readiness after migrations (E00-S03-T06) (pull_request) Successful in 57s
CI / TypeBox/Ajv config schema (E00-S04-T01) (pull_request) Successful in 49s
CI / Compose config (E00-S03-T01) (pull_request) Successful in 26s
CI / Frozen lockfile install (pull_request) Successful in 47s
CI / Secrets not embedded (E00-S02-T08) (pull_request) Successful in 26s
CI / Database-postgres import isolation (E00-S03-T02) (pull_request) Successful in 31s
CI / Migration ledger (E00-S03-T03) (pull_request) Successful in 41s
CI / Migration advisory lock (E00-S03-T04) (pull_request) Successful in 42s
CI / Migration failure diagnostic (E00-S03-T05) (pull_request) Successful in 46s
CI / App readiness after migrations (E00-S03-T06) (pull_request) Successful in 57s
CI / TypeBox/Ajv config schema (E00-S04-T01) (pull_request) Successful in 49s
CI / Compose config (E00-S03-T01) (pull_request) Successful in 26s
This commit is contained in:
@@ -17,6 +17,7 @@ The workspace is a pnpm monorepo with three package groups:
|
||||
| --- | --- | --- |
|
||||
| `apps/` | `apps/server` (`@personal-blog/server`) | Public server application. Serves the application health endpoint (E00-S02-T03) gated on the startup migration run (E00-S03-T06); the Fastify 5 application shell lands in a later story. |
|
||||
| `packages/` | `packages/core` (`@personal-blog/core`) | Application core (site identity, content primitives). Bootstrap placeholder. |
|
||||
| `packages/` | `packages/config` (`@personal-blog/config`) | Configuration service. Owns the TypeBox/Ajv configuration schema for the validated config fields (E00-S04-T01); the environment adapter (E00-S04-T04), field-specific startup errors (E00-S04-T02) and secret redaction (E00-S04-T03) land in later tasks. |
|
||||
| `packages/` | `packages/database-postgres` (`@personal-blog/database-postgres`) | PostgreSQL database adapter package. Single owner of the `pg`/Kysely driver imports (E00-S03-T02); the migration ledger (`schema_migrations`, E00-S03-T03), the migration advisory lock (E00-S03-T04) and the migration runner with its failure diagnostic (E00-S03-T05) are implemented here. The server depends on this package to run the startup migrations behind its readiness gate (E00-S03-T06). |
|
||||
| `extensions/` | `extensions/example` (`@personal-blog/example-extension`) | Example extension exercising the `extensions/` group. Bootstrap placeholder. |
|
||||
|
||||
@@ -76,8 +77,8 @@ pnpm typecheck
|
||||
`pnpm build` runs `tsc -p tsconfig.json` in each package in topological order
|
||||
and emits `dist/` (JavaScript + type declarations + source maps) per package.
|
||||
Expected result: `apps/server/dist/`, `packages/core/dist/`,
|
||||
`packages/database-postgres/dist/` and `extensions/example/dist/` are
|
||||
produced, all packages report `Done`, exit 0.
|
||||
`packages/config/dist/`, `packages/database-postgres/dist/` and
|
||||
`extensions/example/dist/` are produced, all packages report `Done`, exit 0.
|
||||
`dist/` is git-ignored; rebuild whenever you change `src/`.
|
||||
|
||||
## Run
|
||||
@@ -127,8 +128,8 @@ This is also the suite that enforces the dependency-boundary rule.
|
||||
git clone https://git.stevanovic.co.uk/Fabrika/PersonalBlog.git && cd PersonalBlog
|
||||
corepack enable
|
||||
pnpm install --frozen-lockfile # exit 0, lockfile untouched
|
||||
pnpm build # 4/4 packages emit dist/, exit 0
|
||||
pnpm typecheck # 4/4 packages pass --noEmit, exit 0
|
||||
pnpm build # 5/5 packages emit dist/, exit 0
|
||||
pnpm typecheck # 5/5 packages pass --noEmit, exit 0
|
||||
pnpm test # 10/10 pass, exit 0
|
||||
pnpm --filter @personal-blog/server start # serves GET /health on port 3000, stays up
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user