Course platform
Launch unavailableThe authorised launch state will appear after your session and public configuration are checked.
This opens the server-authorised course route in a new tab. No course password is stored in the DoJo.
AI Masters DoJo
Access the DoJo community, fortnightly Q&A catchups, projects, commitments and linked courses.
A sign-in code will be sent to your account email.
Official updates, member reminders and platform notices.
Use the Events link for upcoming sessions, or join the DoJo to unlock the full workspace.
Browse the available schedule, then open Humanitix for external event registration or view internal DoJo details here.
Search the member profiles that are visible to you. Profile details and private chat preferences are controlled by each member.
Launch the authorised course platform from one place. Course content, progress and credentials remain with the external learning provider.
The authorised launch state will appear after your session and public configuration are checked.
This opens the server-authorised course route in a new tab. No course password is stored in the DoJo.
No in-app learning plan or progress record is connected in this checkout. Use your course platform and bring the next practical application back to Community or Q&A.
Change the recurring dates, add one-off dates and attach Zoom meeting links.
Recorded catchups and descriptions will appear here when they are added.
Add a description and YouTube or embed link for past catchups.
A clear place for group context, practical project updates and the next useful action.
Meeting check-ins are planned and are not connected to a shared save path yet.
Peer meetings, check-ins, commitments and coach prep are planned for a future production data boundary.
Use the prompts to prepare. Saving check-ins and commitments remains planned.
Coach prep remains private and is not generated or shared from this preview.
Only assigned, permitted members should appear here.
Conversation stays in the authorised peer channel. This workspace does not copy messages into a second feed.
Current production project records remain owner-only. Peer project sharing is planned until an assigned-group data boundary exists.
Use the sequence to prepare for the next meeting. No peer meeting, check-in or 1:1 record is saved by this screen.
Commitment status and filters are browser-local demo/planned behaviour under the current feature flags.
Member commitments due before the next Community Q&A cycle.
Items blocked by missing provider details or unclear owner action.
Completed commitments ready to review before the next Q&A.
Recent group update, risks and suggested agenda.
Open a member to view 1:1 prep and 1:1 history.
Review safe configuration signals, make audited access changes, and see which source is authoritative. Provider cards show configuration status only; they never display secrets or claim a live connection test.
Reads GET /api/config only. No provider test or write is performed.
Realtime channels, chat, memberships and admin audit queries. Access is enforced by Convex server functions, not browser visibility.
Dependency-down state: if Convex is unavailable, admin controls fail closed and the UI reports that no mutation was performed.
CONVEX_URL presence onlyconvexAuthIssuer is displayed only when configuredMaps subscriptions to free, DoJo member and peer group access. Webhook: POST /api/stripe/webhook
Status only: signature verification, event ordering, duplicate handling, grace and cancellation rules remain server-side. Trial, replay and recalculation controls are not implemented by this endpoint.
STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, mapped Price IDsPOST /api/stripe/webhook (live route)CRM contact alignment only. It should not override a valid Stripe subscription without explicit admin override.
Planned/status-only: this repository has no GHL webhook or API handler. A paid subscription with a contact ID but no approved metadata email remains pending review; it does not grant access.
GHL_WEBHOOK_SECRETGHL_API_KEYdojo_member_email in approved Stripe metadataGroups: dojo-free, dojo-member, dojo-member-readonly, peer-group, peer-group-readonly, ai-coach and admin.
Authoritative session: production admin routes reauthorise the signed-in identity against Keycloak and retain only configured groups. Client visibility is not the security boundary.
Not configuredgroupsShows a launch button only for active DoJo members, peer-group members, AI coaches and admins. No course-platform passwords are stored.
Server-authorised redirect: read-only, blocked and expired users must not launch courses. There is no separate seat/offboarding API in this repository.
UDEMY_SSO_LAUNCH_URL/api/course/launchEvent visibility supports public, free, DoJo member, peer group and admin-only events. Zoom links stay hidden from unauthorised users.
External boundary: Humanitix remains an approved HTTPS external hand-off or inline embed. This app has no Humanitix admin API, local booking state or registration store.
HUMANITIX_CALENDAR_EMBED_URLRich media goes to object storage. Large media must not be stored directly in the app database.
Configuration only: no R2/S3 client, test upload, delete action or signed URL is implemented here. Convex file contracts remain the current attachment path.
S3_ENDPOINT_URLS3_STORAGE_FILES_BUCKETAWS_ACCESS_KEY_ID or S3_ACCESS_KEY_ID presence onlyStructured coach prep, feedback summaries and generation logs. Raw API keys are never displayed.
Planned/status-only: no OpenAI client or generation route exists in this repository. Static coach copy is not a successful generation or log test.
OPENAI_API_KEYOPENAI_MODELOPENAI_MEETING_PREP_PROMPT_VERSIONMeeting reminders, check-in reminders, coach prep ready and security notices. Marketing remains in GHL for v1.
Configuration only: this build has no SMTP2GO client or webhook route. Do not send test mail or infer delivery health from these flags.
SMTP2GO_API_KEYSMTP2GO_FROM_EMAILSMTP2GO_WEBHOOK_SECRETManual grants, blocks, read-only changes and extensions are audited and take priority over Stripe sync. JSON billing state and Keycloak synchronisation are separate steps.
A confirmation will show the target, override type, groups, expiry and reason. If provider sync fails after local state is saved, the result is shown as partial and must be reconciled deliberately.
Use this for synced DoJo users. Add the ai-coach group before assigning members to a coach.
Convex is waiting for configuration.
Move channels locally, then save the order through the existing audited Convex mutation.
Audience: member
Audience: member
Audience: coach
Audience: member
Audience: coach
Audience: admin
No SMTP2GO client, send-test action, delivery log or webhook route is implemented in this repository. The SMTP2GO card on Admin is the only configuration-status surface for this wave.
Use the existing admin:explainUserAccess query to inspect the selected user, channel, memberships and computed reason. Billing JSON, Keycloak and provider status remain separate sources.
Select a user and channel. No provider test, recalculation or resync is performed by this view.