🎙️ 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_memberspivot 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
ArtistMemberJoinedandArtistRoleChangedfor analytics and governance. - When an organization member with the
artist.managepermission creates an artist, the newArtistrecord is linked back to the label viaorganization_idand the member is seeded as the initialArtistMember(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¶
- Artist Creation
- Triggered by an artist owner or organization manager.
- Seeds default profile assets, assigns creator as
owner, optionally links to an organization roster. - Team Invitations
- Artist owners/admins invite collaborators; acceptance creates an active
ArtistMemberrecord. - Supports temporary or project-based roles via expiry metadata.
- Profile Management
- Artists update bios, imagery, and links; changes propagate to Catalog for storefront rendering.
- Roster Sync
- 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.). CreatorsServiceProviderregisters 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.managevsprofile.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.