alkemio
alkemio copied to clipboard
Licensing: Runtime enforcement
Description
Establishing a clear framework for management of licenses, that is flexible and leverages known / team understood patterns.
Allowing a license policy to be created that understands a) license type b) feature flags.
The output of a license check is either a) whether a License Privilege is granted or not (boolean) b) what entitlements a license grants for a particular feature.
The set of Features with entitlements is part of this epic.
An end to end license framework to enforce quotas on a limited set of functionality.
Out of scope: full run time integration with WingBack, though some integration may be needed.
Goal
Enforcing license per space, with visibility (read only) of what space is currently applied and what that means.
Hypothesis
Licence management encourages more users to pay for usage of the platform.
License management allows differentiated selling of the platform.
Licensing is important to enforce limits on platform functionality so that users have an incentive to upgrade.
Avoid removing functionality from users later.
Must have scope
- [x] License policy that understands a) license feature flags b) license type
- [ ] License Policy specifies a) whether a privilege is granted b) what entitlements are granted for a given LicenseFeature
- [x] License Engine that takes a given License and License Policy to calculate the results
- [x] License entity that holds a) feature flags b) license type c) information about associated external subscription id
- [x] UI showing the license for:
- Callout save as template
- RT whiteboards
- VC's
- [ ] UI informing admins about the possibilities when upgrading
Stakeholders
Sales Paying customers
Design
Figma file: Comments are highly appreciated. When commenting in Figma, please also leave a note in the comments box below this issue to notify us
Additional Notes
Terminology: From Wingback: Entitlements Entitlements refer to the rights and permissions that a user or organization has to access and use a particular software service. SaaS entitlements may include a variety of permissions, such as the number of users who are authorized to access the service, the specific features or functionality of the service that a user has access to. The level of access a user has to the data stored in the service, and the measures in place to ensure the security and compliance of the service.
Triggers list from previous epics that were combined into this epic:
-
[ ] Enforcement of access to functionality on a per Space basis
-
[ ] Enforce the following quotas: Whiteboard concurrent users, max challenges
-
[ ] Allow multiple licenses to be held by a Space
-
[ ] Central definition of what license types there are, and what quotas as assigned with a given License
-
[ ] Allow assigning + removing of licenses from a Space via API
-
[ ] Extend space platform management UI to allow adding / removing licenses
-
[ ] Allow querying for quotas for a space via api (for each quota type what is the allowance), accessible to members
-
[ ] Decorator to use the quota on mutations (applying the quota enforcement)
-
[ ] Quota calculation for a given space to be cached for 1 hour
-
[ ] Space admins able to see the licenses associated with the Space read only on the Space admin api
-
[ ] Allow quotas to be enabled / disabled platform wide, with default being that they are not enabled
-
[ ] Visibility to users on why they cannot access the whiteboard / create a new challenge
-
[ ] Script ready to go after deployment on production to assign each space the appropriate license
-
[ ] Test harness added
-
[ ] Default license for new spaces
-
[ ] Payments / billing automated (later)
-
[ ] Expanding the set of quotas that are enforced
-
[ ] Quotas on Challenges, Members,
-
[ ] Quotas on custom Templates for Innovation Flow, Callouts, and Whiteboards
-
[ ] Ability to use community applications
-
[ ] Visibility of leading organizations
-
[ ] .....