Module Status

Module Status

ModuleStatusNotes
Core/Platform🚧 In ProgressAbstractId, Timestamps, DomainEventInterface, TenantId, FileStorageServiceInterface, org context contracts
Core/Identity🚧 In ProgressTenant, User, ApiKey aggregates, Zitadel OIDC auth (PKCE), API key auth, X-Organization-Id context resolution, admin CRUD
Module/Organization🚧 In ProgressFull DDD module: Organization aggregate with ltree OrgPath, OrgMembership, CRUD commands/queries, admin + API controllers, org context resolver
Module/People📋 DesignedUser profiles, privacy, OrgMembership. Modeled on User aggregate.
Module/Groups🚧 In ProgressFull DDD module: Group + GroupMembership aggregates, member management, org-scoped repos/queries, admin + API controllers
Module/Events🚧 In ProgressFull DDD module: Event + EventRegistration aggregates, publish/cancel workflow, Timezone/RecurrenceRule VOs, org-scoped repos/queries, admin + API controllers
Module/News📋 DesignedMulti-level feed, push notifications
Module/Giving⏳ PlannedPhase 2 — donations, pledges, campaigns
Module/Chat⏳ PlannedPhase 2 — group chat, 1:1 messaging
Pipeline/Audit🚧 In ProgressAuditEntry entity, AuditEventHandler (Messenger async), audit log query, superadmin UI
Pipeline/History🚧 In ProgressEntitySnapshot entity, HistoryEventHandler, versioned snapshots

What’s Implemented in Core/Platform

  • AbstractId: Base UUID value object using Symfony\Component\Uid\Uuid
  • Timestamps: Composition-based value object, mapped as Doctrine embeddable
  • DomainEventInterface: Contract for JSON-serializable domain events with version()
  • TenantId: Shared cross-module tenant identifier
  • FileStorageServiceInterface: Flysystem adapter (local dev, S3 prod)
  • OrganizationContextResolverInterface: Contract to resolve org ID → tenant context
  • OrgMembershipCheckInterface: Contract to check user org membership

What’s Implemented in Core/Identity

  • Tenant aggregate: create, status management, type, defaultLocale, profileImage, slug
  • User aggregate: OIDC provisioning from Zitadel, profile fields (firstName, lastName, email, phone), invite/linkIdentity, UserStatus, UserRole
  • ApiKey: API authentication for programmatic access
  • Security: Zitadel bearer token authenticator (X-Organization-Id context resolution, org membership validation), Zitadel OIDC session authenticator, API key authenticator
  • SecurityUser: Carries both tenantId (from user) and organizationId (from API context)
  • Admin UI: Twig-based super admin dashboard (tenant list, user management, audit log)
  • Doctrine: PostgreSQL with custom types for value objects (PhoneNumber, TenantType, UserStatus)

What’s Implemented in Module/Organization

  • Organization aggregate: create, update, archive, ltree OrgPath hierarchy, status, type, address, profileImage, slug
  • OrgMembership aggregate: join/leave org, role management (admin/member)
  • OrgAuthorizationChecker: ltree-based admin cascading
  • RootOrganizationProvisioner: Creates root org for new tenants
  • Org context resolver + membership check: Contract implementations for auth layer
  • Admin UI + API: Full CRUD, member management, slug-based org resolution

What’s Implemented in Module/Groups

  • Group aggregate: create, update, delete, archive, parent group hierarchy, type, profileImage
  • GroupMembership aggregate: add/remove members, role management (leader/member)
  • Org-scoped repos/queries: Content scoped by organization_id (API) or tenant_id (admin)
  • Admin UI + API: Full CRUD, member management

What’s Implemented in Module/Events

  • Event aggregate: create, update, delete, publish, cancel, Timezone/RecurrenceRule VOs, allDay support
  • EventRegistration aggregate: register, cancel, duplicate check
  • Org-scoped repos/queries: Content scoped by organization_id (API) or tenant_id (admin)
  • Admin UI + API: Full CRUD, registration management

What’s Implemented in Pipeline/Audit

  • AuditEntry entity: Stores domain event audit trail
  • AuditEventHandler: Async Messenger consumer, persists audit entries
  • Superadmin UI: Audit log viewer

What’s Implemented in Pipeline/History

  • EntitySnapshot entity: Versioned entity state snapshots
  • HistoryEventHandler: Async Messenger consumer, creates snapshots on domain events

Legend

  • ✅ Complete — API, admin, mobile, tests all done
  • 🚧 In Progress — actively being built
  • 📋 Designed — domain model ready, not implemented
  • ⏳ Planned — scoped for a future phase