FeatureFlag
Plan/Subscription-based feature gating with 3-tier override (restriction only) β Layer 0 Foundation
Statusβ
| Key | Value |
|---|---|
| Layer | foundation |
| Tier | L0 |
| Status | wip |
| Version | 0.9.0 |
| Price | Free (free) |
| Category | Infrastructure |
Overviewβ
Overviewβ
FeatureFlag is the Layer 0 Foundation Plugin providing plan-based feature gating with 3-tier override (Plan β SaaS β Tenant).
Restriction-only rule: Child layers cannot grant broader permissions than parent.
Two value typesβ
State values (string)β
active(priority 0) β accessibledisabled(priority 1) β blocked (menu visible)hidden(priority 2) β fully hidden
Numeric limits (int)β
-1= unlimited- otherwise natural number = limit
FeatureValueResolver (Pure)β
use App\Plugins\FeatureFlag\Services\FeatureValueResolver;
$r = new FeatureValueResolver;
$r->applyRestriction('active', 'disabled'); // 'disabled'
$r->applyRestriction(100, 50); // 50
$r->isValidOverride('active', 'hidden'); // true
$r->applyChain(['active', 'disabled', 'hidden']); // 'hidden'
Statusβ
- οΏ½ Phase 1+2 β Skeleton + Pure Resolver + 24 unit tests
- β¬ Phase 3 β Models + Migrations (Plan/Subscription/SaasOverride/TenantOverride)
- β¬ Phase 4 β FeatureAccess Service
- β¬ Phase 5 β scout.how adapter
Sourceβ
Extracted from scout.how App\Services\FeatureAccess (243 LOC) β core logic only (applyRestriction, isValidOverride, STATE_PRIORITY).
Relationshipβ
Separate from Commerce:
- Commerce: products / orders / payment
- FeatureFlag: feature visibility / limits (gating)
Future integration: Commerce subscription β FeatureFlag plan lifecycle.
Licenseβ
MIT
Demosβ
- Platform κ΄λ¦¬μ ν¨λμμ λ©ν νμΈ π Login required