Add admin ActivityPub actor settings UI #110

Closed
opened 2026-06-05 09:46:54 -05:00 by erik · 2 comments
Owner

Goal

Add an authenticated admin UI for configuring the template site's primary ActivityPub actor without exposing actor settings through the Slugkit management API.

Requirements

  • Add a protected admin settings page for ActivityPub actor identity.
  • Use the database-backed ActivityPub actor foundation from task-fe7ecefd.
  • Allow creating or updating the primary/default actor's username, display name, summary/bio, and profile metadata supported by the foundation.
  • Allow generating missing actor key material for the primary/default actor.
  • Show the derived Fediverse handle and ActivityPub URLs for the configured primary actor.
  • Show federation runtime status from deployment config, including whether ACTIVITYPUB_ENABLED is true and which public origin is in use.
  • Keep federation enabled/disabled as runtime/deployment configuration, not a database setting.
  • Do not add Slugkit management API endpoints for actor settings.
  • Add clear warnings when federation is enabled but actor identity, key material, or public origin is incomplete or unsafe.
  • Add tests for authenticated access, actor create/update form behavior, key generation action, derived URL display, and no unauthenticated access.

Acceptance criteria

  • Authenticated admins can view the ActivityPub actor settings page.
  • Unauthenticated users cannot access or submit ActivityPub actor settings.
  • Admins can create the primary/default ActivityPub actor when none exists.
  • Admins can update primary actor username, display name, summary, and supported profile metadata.
  • Admins can generate missing actor key material.
  • The page shows the actor handle and canonical ActivityPub URLs derived from the configured actor and public origin.
  • The page shows runtime federation enabled/disabled status without storing that setting in the database.
  • No Slugkit management API endpoint is added for actor settings.
  • Tests cover success, validation errors, key generation, and auth protection.
  • Relevant lint/test checks pass.

Dependencies

  • task-fe7ecefd
## Goal Add an authenticated admin UI for configuring the template site's primary ActivityPub actor without exposing actor settings through the Slugkit management API. ## Requirements - Add a protected admin settings page for ActivityPub actor identity. - Use the database-backed ActivityPub actor foundation from `task-fe7ecefd`. - Allow creating or updating the primary/default actor's username, display name, summary/bio, and profile metadata supported by the foundation. - Allow generating missing actor key material for the primary/default actor. - Show the derived Fediverse handle and ActivityPub URLs for the configured primary actor. - Show federation runtime status from deployment config, including whether `ACTIVITYPUB_ENABLED` is true and which public origin is in use. - Keep federation enabled/disabled as runtime/deployment configuration, not a database setting. - Do not add Slugkit management API endpoints for actor settings. - Add clear warnings when federation is enabled but actor identity, key material, or public origin is incomplete or unsafe. - Add tests for authenticated access, actor create/update form behavior, key generation action, derived URL display, and no unauthenticated access. ## Acceptance criteria - [ ] Authenticated admins can view the ActivityPub actor settings page. - [ ] Unauthenticated users cannot access or submit ActivityPub actor settings. - [ ] Admins can create the primary/default ActivityPub actor when none exists. - [ ] Admins can update primary actor username, display name, summary, and supported profile metadata. - [ ] Admins can generate missing actor key material. - [ ] The page shows the actor handle and canonical ActivityPub URLs derived from the configured actor and public origin. - [ ] The page shows runtime federation enabled/disabled status without storing that setting in the database. - [ ] No Slugkit management API endpoint is added for actor settings. - [ ] Tests cover success, validation errors, key generation, and auth protection. - [ ] Relevant lint/test checks pass. ## Dependencies - task-fe7ecefd
Author
Owner

Synced from todu comment by @todu on 2026-06-05T15:55:28.928Z

PR review

PR #111 review completed.

Review result: approved

Blocking issues: 0
Warnings: 0

Acceptance criteria: 10/10 met

Verification reviewed:

  • make check passed locally.
  • ./scripts/pre-pr.sh passed locally.
  • Forgejo CI CI / build-lint-test (pull_request) passed.

Verdict: Approved. Stop at human merge approval gate.

_Synced from todu comment by @todu on 2026-06-05T15:55:28.928Z_ ## PR review PR #111 review completed. Review result: approved Blocking issues: 0 Warnings: 0 Acceptance criteria: 10/10 met Verification reviewed: - `make check` passed locally. - `./scripts/pre-pr.sh` passed locally. - Forgejo CI `CI / build-lint-test (pull_request)` passed. Verdict: Approved. Stop at human merge approval gate.
erik 2026-06-05 11:13:32 -05:00
Author
Owner

Synced from todu comment by @todu on 2026-06-05T16:08:35.377Z

Completed

  • Closed from merged PR #111: Add admin ActivityPub actor settings UI.
  • Evidence: PR #111 is merged to main at merge commit 20a72385c28124e40864afbb6e2be93c9d954a5d.
  • Acceptance criteria: PR review comment marked 10/10 criteria met with no blocking issues and no warnings.
  • Verified: review comment recorded make check, ./scripts/pre-pr.sh, and Forgejo CI CI / build-lint-test (pull_request) passing; post-merge status for the merge commit is successful.
_Synced from todu comment by @todu on 2026-06-05T16:08:35.377Z_ ### Completed - Closed from merged PR #111: **Add admin ActivityPub actor settings UI**. - Evidence: PR #111 is merged to `main` at merge commit `20a72385c28124e40864afbb6e2be93c9d954a5d`. - Acceptance criteria: PR review comment marked 10/10 criteria met with no blocking issues and no warnings. - Verified: review comment recorded `make check`, `./scripts/pre-pr.sh`, and Forgejo CI `CI / build-lint-test (pull_request)` passing; post-merge status for the merge commit is successful.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erik/slugkit#110
No description provided.