thetanz / smp-docs Goto Github PK
View Code? Open in Web Editor NEWOpen source documentation of Subscription Management Platform
Home Page: https://docs.365extensions.com/docs/smp
License: GNU General Public License v3.0
Open source documentation of Subscription Management Platform
Home Page: https://docs.365extensions.com/docs/smp
License: GNU General Public License v3.0
As a publisher, I want to be able to use environment as a product pricing unit so that my customers will pay for each environment where my application is installed
Feature: Price per Environment
As a publisher, I want to be able to use environment as a product pricing unit so that my customers will pay for each environment where my application is installed
Background:
Given a publisher product unit equal to environment
Scenario: Product installed into first environment
When user installs a product into first environment
Then product quantity will be defined as 1
And product quantity will not be editable from API
Scenario: Product installed into second environment
Given product installed on a first environment
When user installs a product into second environment
Then product subscription quantity updated to 2
And product quantity will not be editable from API
Scenario: Product uninstalled from first environment
Given product installed on a first environment
And product installed on a second environment
When user uninstalls a product from first environment
Then product subscription quantity updated to 1
And product quantity will not be editable from API
AB#7765
As a publisher, I want to be able to use a usage based pricing models "Metered" (https://stripe.com/docs/billing/subscriptions/metered) so that will allow me to enable "pay just for used" for my customers
Feature: Usage API
As a publisher, I want to be able to use a usage based pricing models so that will allow me to enable "pay just for used" for my customers
Scenario: Report usage
Given product installed into environment which use a metered pricing
When product application use a Usage API to increment a usage
Then reported usage is recorded in Stripe against customer product subscription
Scenario: Report usage for non-metered pricing product
Given product installed into environment which not use a metered pricing
When product application use a Usage API to increment a usage
Then system will not failed, but return a response to application that this will not be done
Scenario: Delayed usage report
Given product installed into environment which use a metered pricing
When product application use a Usage API to increment a usage and identified that this should be done not in a user real time
Then reported usage will be recorded in Stripe against customer product subscription not in a user runtime (in background or on signout)
AB#7762
As a publisher, I want to visualize product prices in a pricing table so that improve pricing visibility for a customer and increase conversion
Feature: Pricing Cards
As a publisher, I want to visualize product prices in a pricing table so that improve pricing visibility for a customer and increase conversion.
Background:
Given a publisher defined multiple prices for product A:
| Name | Currency | Interval | Price |
| Starter | NZD | Monthly | 100 |
| Starter | NZD | Annually | 1000 |
| Starter | AUD | Monthly | 80 |
| Starter | AUD | Annually | 800 |
| Business | NZD | Monthly | 300 |
| Business | NZD | Annually | 3000 |
| Business | AUD | Monthly | 240 |
| Business | AUD | Annually | 2400 |
Scenario: Open pricing table
Given account currency equal to NZD
And user are on Subscription Info Screen
When user click on select plan
Then new lookup page opens
And there are only prices for NZD currency visualizes as cards grouped by name
And each card incudes name, description, features, amount, unit, interval
AB#7767
As a publisher, I would like to like my assignee my permission set \ entitlement with a product plan, so that system will automatically limit user permissions based on selected product plan
About entitlements:
AB#7760
As a customer, I want to be able to list users which will have a write access to a account setup so that information it will not be exposed to everyone in an organization
Feature: Account Access Group
As a customer, I want to be able to list users which will have a write access to a account setup so that information it will not be exposed to everyone in an organization
Scenario: Pre-defined permissions sets
When user installs a product into environment
Then new 'SUBMGT, VIEW' and 'SUBMGT, SETUP' permissions sets will be created
And 'SUBMGT, VIEW' permission set will be assigned to all users
And 'SUBMGT, SETUP' permission set will be assigned to the user who initiated an installation.
Scenario:
Given product installed into environment
When user with write permissions to Account Setup table opens Account Setup page
Then Account Setup page opens without any errors
Scenario:
Given product installed into environment
When user with read permissions to Account Setup table opens Account Setup page
Then error message informs user that he do not have permissions defined
Scenario:
Given product installed into environment
When user with write permissions to Account Setup table opens Role Center
Then subscription related notifications appear
Scenario:
Given product installed into environment
When user with read permissions to Account Setup table opens Role Center
Then subscription related notifications do not appear
Scenario:
Given product installed into environment
When user with write permissions to Account Setup table opens Account Setup page
And Sign-up for an account
Then instruction on Account Screen informs him about 'SUBMGT, SETUP' permissions set which should be defined for any user which would have edit account access
AB#7764
Describe the bug
There are customers who reported cases when the system shows that a trial is expired, but Stripe did not execute a payment yet.
To Reproduce
Steps to reproduce the behaviour:
Expected behaviour
No notification will pop up.
Additional context
this may be due to a UTC vs Local time zone cooperation for a trial period expiration.
When there is one product subscription created and trial expires and then when second product subscription created, system refresh first product subscription trial.
first subscription should not be updated at all.
AB#7770
As a product team we would like to be able to access to each an every trace execution including stack tree, duration, error code from production environments so then we can effectively improve a solution and better prioritize our backlog
Feature: ARM Tracing
As a product team we would like to be able to access to each an every trace execution including stack tree, duration, error code from production environments so then we can effectively improve a solution and better prioritize our backlog
Scenario: Log traces
Given application installed on any environment
When any application logic executes
Then application records it's exception send this to log server without any overhead
Scenario: Review traces
Given application delivers execution traces to a log server
When developer access a log server
Then developer can view an average execution timeline as well as dive into a individual trace waterfall view
Scenario: Partner Support
Given application delivers execution traces to a log server
And customer contact publisher
When publisher forward us a customer request
Then original customer request will include a trace identifier which our product team will be able find on a log server
AB#7763
As a publisher, I would like to automatically transfer implementation commission to my partners so that I can make partner channel billing transparent and decrease a cost of my partner channel operations
Feature: Sales Through Partners
As a publisher, I would like to automatically transfer implementation commission to my partners so that I can make partner channel billing transparent and decrease a cost of my partner channel operations
Scenario: Setup commission
When publisher on-boards with SMP and fills implementation partner commission percent
Then this information will be recorded within SMP
Scenario: Enable link partner to customer subscription
Given publisher define a default implementation commission
And product installed into customer environment
When customer login for a new account
Then a new "Partner ID" non-mandatory text field will be available on a Account Info Screen
And it will be not editable after it's defined on a account screen
Scenario: Enable sign up as implementation partner
Given publisher define a default implementation commission
And implementation partner has it's own valid Stripe account
And product installed into customer environment
And customer login for a new account
When customer (with partner assistance) enters a "Partner ID" with a Partner's Stripe Account ID
Then system checks if defined account id is linked to a platform and allowed to proceed
But if defined account id is not linked to a platform
Then system will popup with a message which direct partner to sign-up with a platform before proceeding
Scenario: Link partner to customer subscription
Given publisher define a default implementation commission
And implementation partner has it's own valid Stripe account
And product installed into customer environment
And customer login for a new account
And customer (with partner assistance) enters a "Partner ID" with a Partner's Stripe Account ID which is linked to a platform
When new product subscription created
Then system will record Partner's Stripe Account ID against customer product subscription
And on every successful invoice payment it will automatically creates a transfer from publishers to partners account a commission amount equal to customer subscription invoice before tax amount multiplied by default implementation commission percent
AB#7761
Describe the bug
It's unclear how the rows are sorted within a product plan lookup.
To Reproduce
Steps to reproduce the behaviour:
Expected behaviour
Instead of a current (random
) sorting, it's expected to be sorted by "Payment Interval" and then by "Price" so that smaller would appear at the top.
User unable to compile a setup with version 1.1.1.0 with existing payment method
No error appears and system allows to proceed
AB#7769
As a customer, I want to be able to activate an extension even if there are SSO restrictions in my organization so that it will not block my setup progress
Feature: OAuth Fallback to "Tenant" Auth
As a customer, I want to be able to activate an extension even if there are SSO restrictions in my organization so that it will not block my setup progress
Scenario:
Given product installed into the SAAS environment
When a user which belongs to the current environment opens the Account Setup page
Then Account Information screen opens with predefined information from the environment instead for Graph
To identify if user belongs to the current environment we can call https://login.microsoftonline.com/<user email domain part>/.well-known/openid-configuration
and compare it with a current environment tenant id and if it match then user belongs to current tenant so we may allow him to sign up without SSO
AB#7759
As a enterprise customer with multiple production environments per subsidiary operating within a single AAD tenant, I want to be able to enable each subsidiary to have a separate account so then each will manage it's own billing and product suite
Feature: Multi-Production Tenant
As a enterprise customer with multiple production environments per subsidiary operating within a single AAD tenant, I want to be able to enable each subsidiary to have a separate account so then each will manage it's own billing and product suite.
Background:
Given a customer user assigned to AAD administrative unit
Scenario: Customer Sign-up With Microsoft Account linked to Administrative Unit
Given user are on Intro Screen
When user sign-in with Microsoft account
Then Account Info screen will be presented linked to tenant+administrative_unit account identifier
AB#7766
User is not getting any notifications when subscription status is pastDue.
Steps to reproduce the behavior:
There should be a notification which follow user to a payment method screen
AB#7756
As a publisher, I want to have a most up to date user manual on how to activate my application generated for me so that I do not need to maintain it by myself.
Feature: Publisher Key
As a publisher, I want to have a most up to date user manual on how to activate my application generated for me so that I do not need to maintain it by myself.
Scenario: TBD based on publishers initial feedback
AB#7757
As a publisher, I want to avoid using my Stripe Secret Key for an integration purpose so that my Stripe account will not be exposed in case of application hijacking.
Feature: Publisher Key
As a publisher, I want to avoid using my Stripe Secret Key for an integration purpose so that my Stripe account will not be exposed in case of application hijacking.
Scenario: Generate Publisher Test and Live Keys
When publisher on-boards with SMP
Then system generates a Publisher Test and Live Keys an present it to publisher
Scenario: Integration Using Publisher Test Key
Given publisher connected with SMP
And Publisher Test and Live keys has been generated
When publisher using Publisher Test Key instead of a Test Secret Key within an Subscription Management API
Then system authorize publisher within a platform using Publisher Test Key
Scenario: Integration Using Publisher Live Key
Given publisher connected with SMP
And Publisher Test and Live keys has been generated
When publisher using Publisher Live Key instead of a Live Secret Key within an Subscription Management API
Then system authorize publisher within a platform using Publisher Live Key
AB#7758
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.