Skip to content

TAN-8563: Early access opt in - #14675

Draft
EdwinKato wants to merge 25 commits into
masterfrom
TAN-8563-early-access-opt-in
Draft

TAN-8563: Early access opt in#14675
EdwinKato wants to merge 25 commits into
masterfrom
TAN-8563-early-access-opt-in

Conversation

@EdwinKato

Copy link
Copy Markdown
Contributor

Changelog

Added

  • Admins can now switch on selected features that are built but not yet released, from Profile settings > Early access. What an admin switches on only changes what that admin sees — every other user on the platform, including other admins, is unaffected. The list is curated by us: only features we have explicitly opened for early access appear there, so this can never be used to turn on a feature the platform is not commercially entitled to. The first feature offered is the redesigned project back office (parallel participation).

Technical

  • A feature opts into this by adding "early_access": true to its entry in the settings JSON schema (or overriding early_access? in an engine's feature specification). That list is the allowlist, enforced both on write (model validation) and on read.
  • Opt-ins are stored on users.early_access_features. ApplicationController narrows them to (admin) ∩ (registry) into Current.early_access_features, which AppConfiguration#feature_activated? and #public_settings consult — so useFeatureFlag, useFeatureFlags, FeatureFlag and GetFeatureFlag needed no changes, and flag-gated API endpoints work too. Current is empty outside a web request, so jobs and rake tasks are never affected.
  • An early access feature must be a bare on/off flag: the override lifts allowed/enabled but cannot satisfy dependencies or supply a required-settings value. A spec enforces this.
  • Serving a different app configuration per admin is safe because the aggressive caching engine already excludes non-residents from the action cache.
  • Removing a feature from the registry makes stored opt-ins inert with no data migration.

For translators

New strings in front/app/containers/UsersEditPage/EarlyAccess/messages.ts, all in the new Early access section of the profile settings page (/profile/edit), visible to admins only:

  • app.containers.UsersEditPage.EarlyAccess.earlyAccessTitle (Early access) — section heading.
  • app.containers.UsersEditPage.EarlyAccess.earlyAccessSubtitle (Try out features we are still finishing. What you switch on here only changes what you see, not what anyone else on the platform sees.) — section subtitle.
  • app.containers.UsersEditPage.EarlyAccess.parallelParticipationTitle (Redesigned project back office) — label next to the toggle.
  • app.containers.UsersEditPage.EarlyAccess.parallelParticipationDescription (The reworked project setup and project page, where participation methods can run side by side instead of one after the other.) — helper text under that label.

@notion-workspace

Copy link
Copy Markdown

Early access opt in

@cl-dev-bot

Copy link
Copy Markdown
Collaborator
Messages
📖 Changelog provided 🎉
📖 Notion issue: TAN-8563
📖

Run the e2e tests

📖 Check translation progress

Generated by 🚫 dangerJS against 80324f8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants