An application feature is a single capability that can be turned on or off — typically gated by subscription tier, security group, or per-tenant configuration. Features are the building blocks of feature sets and the granular currency in which permissions are sold.
What Makes a Feature
A feature has:
- A key — used in code (
audit_log). - A friendly name — used in tier-comparison pages (
Audit Log). - A group — for visual organisation (Security & Compliance, Integrations, etc.).
- A description — what the feature does in customer-friendly language.
- A default state — on or off when no other configuration applies.
How Features Are Checked
Application code asks: $AM->featureEnabled('audit_log'). The lookup checks: per-tenant override → feature set membership → security group permission → default. The first match wins.
Examples of Features
- Functional: Audit log, advanced search, custom dashboards, API access.
- Limits: Max users, max records, max storage — implemented as features whose “value” is the limit.
- UI: White-label branding, custom logo, hidden navigation items.
- Integrations: Stripe, SendGrid, Slack — each can be a feature gate.
- Beta flags: New experimental capabilities surfaced to a subset of tenants first.
Worked Examples
- SaaS pricing page: The features list drives the tier comparison table on the marketing site — single source of truth.
- Beta programme: A “new_dashboard” feature gate, enabled per-tenant. Beta testers see it; everyone else doesn't.
- Custom enterprise: An “Enterprise” tier where individual features are toggled per-tenant for bespoke contracts.