Skip to content

[OpenSpec] portal-identity #453

Description

@github-actions

⚠️ OpenSpec-managed issue — this content is automatically synced
from the openspec/ directory. Manual edits will be overwritten on next sync.

Artifacts

Summary

Add a stable UUID domain reference for a character's owning player —
character.ownerRef — so the shared portaliq external portal (hydra
ADR-046 + contract v2.1) can scope a player's own characters by a domain UUID
rather than by a Nextcloud user id. The property is added ALONGSIDE the
existing character.ownerUid (which stays untouched — internal flows and the
character-approved per-player notification depend on it). This is the first
link of a two-change ADR-032 chain:

  1. portal-identity (this change, kind: config) — add the ownerRef
    domain-ref property to the character schema via an ADR-037 register
    fragment.
  2. portal-contribution (kind: code, depends_on: portal-identity)
    ship the dependency-free PortalContributionProvider that scopes the
    player audience EXCLUSIVELY by ownerRef.

Specs

Tasks

  • T1: Verify at HEAD that character scopes ownership by ownerUid (a Nextcloud uid) and that internal flows depend on it.
  • T2: Choose and document the stable domain identity the ref points at.
  • T3: Add lib/Settings/register.d/portal-identity.json — an ADR-037 fragment adding ownerRef to the character schema ALONGSIDE ownerUid (do not edit the monolith).
  • T4: Bump the character schema version 1.3.01.4.0 in the fragment (scalar overwrite); leave appinfo/info.xml untouched (app version is release-owned per register.d/README.md).
  • T5: JSON-validate the fragment and simulate the deep-merge to prove ownerUid is retained, ownerRef is added, and required is unchanged.
  • T6: Author openspec/changes/portal-identity/{proposal,design,tasks}.md and specs/portal-identity/spec.md (status: in-progress); reference Conduction/larpingapp#51 in the proposal.
  • T7: Run openspec validate portal-identity --strict until clean.
  • T8: Commit on feat/portal-contribution (conventional message, no Co-Authored-By); do not push, do not open a PR.

Design

See design.md for technical design details.


Synced from openspec/changes/portal-identity by OpenSpec workflow
App: larpinq

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions