Skip to content

🎙️ Creators Context

Last updated: 2025-10-09 (Europe/Paris)

The Creators context models artists, their collaborators, and the creative assets that feed the catalog. It ensures that artist teams can manage profiles, releases, and permissions without leaking authentication or organizational concerns from Accounts.


🎯 Purpose

  • Represent artists, collectives, and aliases independently from user identities.
  • Manage artist-team membership, roles, and invitation workflows.
  • Provide creator-facing profile, bio, social, and branding data for catalog and marketing surfaces.
  • Coordinate with Accounts to resolve permissions when an action is initiated via an organization role.

🧩 Core Models

Model Description
Artist Canonical creator entity; can be solo or tied to an organization roster.
ArtistMember Links users to an artist with a role (owner, admin, member, collaborator).
ArtistAlias Optional alternate names, projects, or stage personas.
ArtistProfile* Stores bios, links, imagery, and spotlight content.

*Implementation detail may live as a value object or inlined columns depending on evolution.

Related enums/traits are shared via app/Contexts/Creators/ and app/Shared/.


🤝 Access Model

  • Artist membership is stored in the artist_members pivot with role metadata and optional per-action overrides (release.publish, payout.view).
  • Policies (e.g., ArtistPolicy) first check direct membership, then fall back to organization permissions via Accounts (artist.manage, release.*).
  • Invitation flow mirrors organization invites but scoped to artist teams, enabling collaborators outside the label to contribute safely.
  • Audit hooks emit events like ArtistMemberJoined and ArtistRoleChanged for analytics and governance.
  • When an organization member with the artist.manage permission creates an artist, the new Artist record is linked back to the label via organization_id and the member is seeded as the initial ArtistMember (owner/admin). This keeps label roster management and creator access aligned.

See docs/contexts/auth/roles-permissions.md for role definitions and resolution order.


🔄 Key Flows

  1. Artist Creation
  2. Triggered by an artist owner or organization manager.
  3. Seeds default profile assets, assigns creator as owner, optionally links to an organization roster.
  4. Team Invitations
  5. Artist owners/admins invite collaborators; acceptance creates an active ArtistMember record.
  6. Supports temporary or project-based roles via expiry metadata.
  7. Profile Management
  8. Artists update bios, imagery, and links; changes propagate to Catalog for storefront rendering.
  9. Roster Sync
  10. Organizations request roster views; context returns artist list with membership and status for dashboards.

🛠 Integrations with Other Contexts

  • Catalog: Supplies artist metadata for releases, track credits, and search indexing.
  • Accounts: Consumes organization relationships, resolves permission fallbacks, and shares invitation UX components.
  • Community: Feeds public artist pages, follow relationships, and notification payloads.
  • Payouts: Contributes split assignments, ensuring beneficiaries are tied to artist roles or organizations.

Domain events remain the bridge (ArtistCreated, ArtistProfileUpdated, ArtistMemberInvited).


🏗 Technical Notes

  • Source code for Creators is grouped under app/Contexts/Creators/ (Models, Http, Actions, DTOs, etc.).
  • CreatorsServiceProvider registers repository bindings, policies, and any creator-specific routes.
  • Repository interfaces under Contracts/ abstract storage and make future package extraction possible.
  • File uploads for artist imagery leverage the Media context; only IDs/paths are stored here.
  • Tests reside in tests/Contexts/Creators/, mirroring production namespaces and focusing on policy + membership flows.

🛣 Roadmap Highlights

  • Support artist collectives with nested or linked artist entities.
  • Add richer profile modules (press kits, EPK downloads, long-form notes).
  • Introduce role-based granular permissions (e.g., merch.manage vs profile.edit).
  • Automate cross-posting updates to marketing integrations (newsletter, social push).

References

  • docs/rawdigs-contexts.md — High-level context map.
  • docs/features/features-overview.md — Creator feature set and roadmap.
  • docs/contexts/creators/models.md — Database schema for artists, members, aliases.
  • docs/contexts/creators/entity-diagram.md — High-level entity map within Creators.
  • docs/contexts/auth/roles-permissions.md — Access matrix and policy resolution.
  • docs/contexts/auth/models.md — Spatie schema underpinning organization fallback permissions.
  • docs/contexts/media/index.md — Shared Media Library conventions for visuals and press assets.
  • docs/commands/context-make.md — CLI scaffolding for new Creators resources.