Skip to content

Expose registration mode through Back Office operational configuration #672

Description

@yacosta738

Context

The first approved dynamic configuration in the RFC is registration.mode. Back Office should expose selected runtime configuration safely, without becoming a generic environment-variable editor.

Goal

Implement operational configuration support for registration mode and expose the admin command/query path required to manage it safely.

Scope

  • Expose registration.mode for administrative read and write.
  • Support OPEN, INVITE_ONLY, and CLOSED values.
  • Record configuration changes with audit detail including previous and new values.
  • Enforce authorization for configuration changes.

Out of Scope

  • Arbitrary environment-variable editing.
  • Secret management.
  • Unapproved runtime configuration unrelated to current operational needs.

Domain Rules

  • Registration policy remains mutually exclusive state.
  • Configuration changes must be explicit and auditable.
  • Only approved dynamic configuration belongs in Back Office.

API Contract

  • Prefer explicit admin query/update contract for registration mode.
  • Configuration writes must validate allowed values.

Security

  • Requires explicit configuration write permission.
  • Server-side validation required.

Audit

  • Emit CONFIGURATION_CHANGED events containing the key and before/after values.

Observability

  • Configuration changes should be logged with correlation IDs.

Acceptance Criteria

  1. Administrators can read the current registration mode.
  2. Authorized administrators can change registration mode between OPEN, INVITE_ONLY, and CLOSED.
  3. Unauthorized attempts are rejected.
  4. Configuration changes are audited with previous and new values.

Gherkin

Feature: Operational registration mode configuration

  Scenario: Change registration mode
    Given registration mode is "OPEN"
    When an authorized administrator changes it to "INVITE_ONLY"
    Then new registrations should require an invitation
    And the change should be audited

Testing

  • Application
  • API
  • Integration
  • Security

Dependencies

References

  • RFC sections 15, 27, 28, 30, 31, 45

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions