mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 10:35:51 +00:00
Rename hosted capacity marker copy
This commit is contained in:
+1
-1
@@ -31,7 +31,7 @@ For organisations that need multi-tenant management:
|
||||
|---|---|
|
||||
| Multi-Tenant Mode | `multi_tenant` |
|
||||
| Multi-User Mode | `multi_user` |
|
||||
| Unlimited Instances | `unlimited` |
|
||||
| Hosted Capacity Policy | `unlimited` |
|
||||
|
||||
See [Plans & Entitlements](PULSE_PRO.md) for the full feature matrix.
|
||||
|
||||
|
||||
@@ -533,6 +533,12 @@ Community limit enforcement.
|
||||
entitlement refresh paths may preserve historical billing fields for old
|
||||
state, but new trial or hosted workspaces must not mint quickstart credits
|
||||
or imply a managed-model allowance as part of the commercial contract.
|
||||
18. Keep the `unlimited` feature key neutral in shared metadata. It is a
|
||||
hosted/MSP capacity-policy marker, not a self-hosted monitoring-volume
|
||||
product promise. Runtime and generated feature catalogs must label it as
|
||||
hosted capacity policy, keep it hidden from self-hosted plan cards, and
|
||||
avoid customer-facing "Unlimited Instances" copy that sounds like the old
|
||||
capped self-hosted packaging.
|
||||
|
||||
## Current State
|
||||
|
||||
@@ -1787,7 +1793,10 @@ The same runtime-readiness rule also excludes placeholder and plan-marker
|
||||
entries like `white_label`, `multi_user`, and `unlimited` from dev/demo
|
||||
entitlement payloads when there is no corresponding operable runtime surface;
|
||||
those belong in tier metadata and plan semantics, not in live capability
|
||||
advertising for a free dev shell.
|
||||
advertising for a free dev shell. The `unlimited` feature key is a hosted/MSP
|
||||
capacity-policy marker and must use neutral hosted-capacity wording in shared
|
||||
metadata rather than customer-facing "Unlimited Instances" copy that implies a
|
||||
self-hosted monitoring-volume tier.
|
||||
The same distinction applies to customer-facing self-hosted billing
|
||||
presentation. `frontend-modern/src/components/Settings/useProLicensePanelState.ts`
|
||||
and `frontend-modern/src/utils/licensePresentation.ts` may label operable
|
||||
|
||||
@@ -335,8 +335,8 @@ export const SELF_HOSTED_FEATURE_CATALOG: readonly GeneratedSelfHostedFeatureCat
|
||||
},
|
||||
{
|
||||
"key": "unlimited",
|
||||
"displayName": "Unlimited Instances",
|
||||
"comparisonName": "Unlimited Instances",
|
||||
"displayName": "Hosted Capacity Policy",
|
||||
"comparisonName": "Hosted Capacity Policy",
|
||||
"showInComparisonTable": false,
|
||||
"displayableInSelfHostedPlan": false,
|
||||
"roles": {
|
||||
|
||||
@@ -86,7 +86,7 @@ func TestGetFeatureDisplayNameCoversKnownFeaturesAndFallback(t *testing.T) {
|
||||
{feature: FeatureMultiUser, want: "Multi-User Mode"},
|
||||
{feature: FeatureWhiteLabel, want: "White-Label Branding"},
|
||||
{feature: FeatureMultiTenant, want: "Multi-Tenant Mode"},
|
||||
{feature: FeatureUnlimited, want: "Unlimited Instances"},
|
||||
{feature: FeatureUnlimited, want: "Hosted Capacity Policy"},
|
||||
{feature: FeatureAgentProfiles, want: "Centralized Agent Profiles"},
|
||||
{feature: FeatureAuditLogging, want: "Audit Logging"},
|
||||
{feature: FeatureSSO, want: "Basic SSO (OIDC)"},
|
||||
|
||||
@@ -38,7 +38,7 @@ const (
|
||||
FeatureMultiUser = "multi_user" // Multi-user (likely merged with RBAC)
|
||||
FeatureWhiteLabel = "white_label" // Custom branding - NOT IMPLEMENTED YET
|
||||
FeatureMultiTenant = "multi_tenant" // Multi-tenant organizations
|
||||
FeatureUnlimited = "unlimited" // Unlimited instances (for MSP/volume deals)
|
||||
FeatureUnlimited = "unlimited" // Hosted capacity policy marker for MSP/enterprise deals
|
||||
|
||||
// Internal-only runtime capabilities. These must never be added to public
|
||||
// tier defaults or public pricing contracts.
|
||||
@@ -297,7 +297,7 @@ var proFeatures = appendFeatures(relayFeatures,
|
||||
FeatureAdvancedReporting,
|
||||
)
|
||||
|
||||
// mspFeatures adds multi-tenant and unlimited on top of pro.
|
||||
// mspFeatures adds multi-tenant and hosted capacity policy on top of pro.
|
||||
var mspFeatures = appendFeatures(proFeatures,
|
||||
FeatureUnlimited,
|
||||
FeatureMultiTenant,
|
||||
|
||||
@@ -231,7 +231,7 @@ func TestGetFeatureDisplayName(t *testing.T) {
|
||||
{FeatureMultiUser, "Multi-User Mode"},
|
||||
{FeatureWhiteLabel, "White-Label Branding"},
|
||||
{FeatureMultiTenant, "Multi-Tenant Mode"},
|
||||
{FeatureUnlimited, "Unlimited Instances"},
|
||||
{FeatureUnlimited, "Hosted Capacity Policy"},
|
||||
{FeatureAgentProfiles, "Centralized Agent Profiles"},
|
||||
{FeatureAuditLogging, "Audit Logging"},
|
||||
{FeatureSSO, "Basic SSO (OIDC)"},
|
||||
|
||||
@@ -290,8 +290,8 @@ var featureMetadataCatalog = map[string]FeatureMetadata{
|
||||
},
|
||||
FeatureUnlimited: {
|
||||
Key: FeatureUnlimited,
|
||||
DisplayName: "Unlimited Instances",
|
||||
ComparisonName: "Unlimited Instances",
|
||||
DisplayName: "Hosted Capacity Policy",
|
||||
ComparisonName: "Hosted Capacity Policy",
|
||||
DisplayableInPlanUI: false,
|
||||
SelfHostedRoles: SelfHostedFeatureRoles{
|
||||
Community: SelfHostedFeatureRoleHidden,
|
||||
|
||||
Reference in New Issue
Block a user