Giter VIP home page Giter VIP logo

santhoshbomma9 / microsoft-commercial-marketplace-transactable-saas-offer-sdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from azure/commercial-marketplace-saas-accelerator

0.0 1.0 0.0 8.95 MB

The Microsoft commercial marketplace SaaS offer billing SDK enables Partners and Startups to build the requirements for the implementation of transactable SaaS offers for both the AppSource and Azure Marketplaces.

License: MIT License

C# 64.92% HTML 13.68% CSS 4.17% JavaScript 0.13% TSQL 17.10%

microsoft-commercial-marketplace-transactable-saas-offer-sdk's Introduction

Microsoft Commercial Marketplace Transactable SaaS Offer SDK

.NET Core

Introduction

This SDK's goal is to provide guidance and the components needed for Publishers (ISVs and StartUps) to create transactable Software as a-Service (SaaS) offers in the Azure and AppSource marketplaces.

The SDK provides the components required for the implementations of the billing (fulfillment v2 and metered) APIs, and additional components that showcase how to build a customer provisioning interface, logging, and administration of the customer's subscriptions. These are the core projects in the SDK:

  • Transactable SaaS Client Library that implements the fulfillment v2 and metered APIs and the Web-hook that handles messages from the Marketplace's E-commerce engine.
  • Customer provisioning sample web application that showcases how to register, provision, and activate the customer subscription. Implemented using ASP.Net Core 3.1, it uses the SaaS Client library and Data Access Library to to invoke and persists interactions with the fulfillment APIs. In addition, it provides interfaces for a customer to manage their subscriptions and plans.
  • Publisher sample web application that showcases how to generate metered based transactions, persistence of those transactions and transmission of these transactions to the metered billing API.
  • Client Data Access library that demonstrates how to persist the Plans, Subscriptions, and transactions with the fulfillment and Metered APIs.

Documentation

The documentation (docs) directory contains:

  • Installation instructions to help understand, implmenet and deploy the SDK components.
  • Review of the SaaS Offer BluePrints the SDK provides extended functionality. In addition, to the implementation . Like using the SaaS offer a way to transact Virtual Machines and Azure Application offers with the use of software licenses (Scheduled for v.1.1 of this SDK) and for implementing Hybrid SaaS applications (scheduled for v1.2 of this SDK)

Sources

The source (src) directory offers the following components:

Project Description Directory Name
Transactable SaaS Client Library Implements the fulfillment v2 and metered APIs and the Web-hook that handles messages from the Marketplace's E-commerce engine. SaaS.SDK.Client
Customer provisioning sample web application Showcases how to provision a customer (ASP.NET Core 3.1) that uses the SDK to invoke fulfillment APIs in order to manage the subscriptions against the SaaS offer in Azure. SaaS.SDK.CustomerProvisioning
Publisher sample web application Showcases how to generate metered based transactions, persistence of those transactions and transmission of these transactions to the metered billing API. SaaS.SDK.PublisherSolution
Client Data Access library Enables to persist the Plans, Subscriptions, and transactions with the fulfillment and Metered APIs. SaaS.SDK.Client.DataAccess
Unit Tests project Helps validate and test the SDK's codebase. SaaS.SDK.UnitTest

The web sample applications and the SDK in this repository cover the components that comprise the highlighted area in the below picture

The Azure Marketplace Metering SDK enables SaaS applications publish usage data to Azure so that customers are charged according to non-standard units.

The metering SDK ( .NET class library ) and a sample web application to report usage events for subscriptions against those plans that support metering ( have the dimensions defined and enabled ) correlate to SaaS Metering and SaaS Service blocks in the below image, respectively.

Usecase

Technology

This SDK has been developed using the following technologies:

Resources

  • Details on the fulfillment v2 API can be found here

  • Details on the metering APIs can be found here.

  • Steps to create a SaaS offer are available here

Prerequisites

Ensure the following prerequisites are met before getting started:

Besides, it is assumed that you have access to the following resources:

  • Azure subscription - to host the AMP SDK sample client application.
  • Partner Center - to create and publish a marketplace offer.

Roadmap

The following is the proposed road map for this SDK:

  • February 2020 - v1.0 Current Release. It includes the full implementation of the Fulfillment V2 and metered APIs with web applications that demonstrate customer provisioning and publisher solutions.
  • March 2020 - v1.1 Add the SaaS Offer as a License Manager Application blueprint: This is targeted for Publishers that would like to use a combination of two Azure Marketplace offers to transact their SaaS Solution. The first offer is a SaaS offer that would be use as a mechanism to sell a license for the solution on specific terms (defined by Plan) and a Virtual Machine or an Azure Application offer that will deploy the solution in the Customer Subscription as a BYOL offer.
  • May 2020 - v1.2 Add the SaaS Offer that deploys in the Customer's Azure Subscription (also referred as the Hybrid Model) blueprint: Targeted to publishers that:
    • Need use the billing capabilities of the SaaS offer for the Virtual Machine and Azure Application (Solution Template) offer
    • Partners that would like to deploy solutions in the customer’s subscriptions that use technologies (VM + Container, Kubernetes, etc…) that are not currently supported by other offers in Marketplace
    • Partners that need to deploy solutions in the customer’s subscriptions that use Azure Services that cannot be fully automated via Azure Resource Manager Deployments (need manual steps to complete the full deployment).
    • Partners that have a SaaS deployment solution that needs to have both a SaaS Application running into their subscription and Azure resources deployed into the customers Azure subscription. A combination of both is required to enable their solution to work.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

microsoft-commercial-marketplace-transactable-saas-offer-sdk's People

Contributors

pbutlerm avatar dev-kiranbanda avatar code4clouds avatar dstarr avatar microsoftopensource avatar santhoshbomma9 avatar ankisho avatar bkreider avatar prasad-3 avatar scseely avatar microsoft-github-operations[bot] avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.