Split site config into core and custom #81
Labels
No labels
activitypub
admin
api
articles
auth
bug
cleanup
cli
comments
compatibility
config
contacts
database
deployment
design
dev-env
docs
documentation
email
enhancement
feature
federation
feed
homepage
implementation
integration
media
openapi
priority:high
priority:low
priority:medium
proof
public-routes
public-ui
release
safety
social
sources
status:active
status:canceled
status:done
status:inprogress
status:waiting
syndication
tailwind
template
test
web
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
erik/slugkit#81
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Redesign the site configuration API response and storage model so portable Slugkit settings are separated from site-specific extension settings.
Requirements
GET /api/v1/site-configto return a top-levelcoreobject andcustomobject insidedata.core:nameurltaglinedescriptionhomepage.introhomepage.bodycustomas a site-specific key/value object.PATCH /api/v1/site-configso callers can updatecore,custom, or both.corefields.customas JSON-compatible data without enforcing project-specific keys.core + customshape.Acceptance criteria
GET /api/v1/site-configreturns{ data: { core: ..., custom: ... } }.data.core.PATCH /api/v1/site-configcan updatecorefields.PATCH /api/v1/site-configcan updatecustomkey/value data.corefields still return validation errors.core + customschema.Dependencies
Synced from todu comment by @todu on 2026-06-02T17:28:05.897Z
PR review
PR #86 reviewed and approved.
Acceptance criteria: 8 total, 8 met, 0 missing.
Blocking issues: 0.
Warnings: 0.
Verification reviewed: targeted site-config/config/routes/migration tests passed, targeted CLI command tests passed,
npm run typecheckpassed,npm testpassed,npm run lintpassed,./scripts/pre-pr.shpassed, and Forgejo CI issuccessfor commit8672148c7ca66b48690a90a296bc8c7b867a9e87.Verdict: approved; waiting for explicit human merge approval.
Synced from todu comment by @todu on 2026-06-02T17:37:01.864Z
Close gate summary
Readiness: READY
Evidence:
main; localmainis at merge commit95aad8c.data.coreplusdata.custom, maps portable fields undercore, accepts partialcoreand/orcustomPATCH bodies, validates core/custom input, and persists custom JSON in SQLitesite_config.custom_json.core + customresponse/request shape and JSON-compatible custom values.npm run typecheckpassed,npm testpassed,npm run lintpassed,./scripts/pre-pr.shpassed, and Forgejo CI wassuccessfor commit8672148c7ca66b48690a90a296bc8c7b867a9e87.All 8 acceptance criteria are met. Task closed.