The industry adoption of SaaS services is rapidly expanding, and the Snow Technology Platform is the perfect solution for gaining visibility and insight into this usage. With the release of SIM 5.18, we introduce the new SaaS - Generic connector aimed at partners and customers that want to import data from additional SaaS services beyond the ones Snow already publishes dedicated connectors for.
The SaaS - Generic connector enables the integration of data (users, subscriptions, and assignments) from third-party SaaS services in a streamlined way.
In this three part series, I will show you, what you need to take care of, how to query an existing API and how to create files in the correct format.
- Scripting Skills
- ability to understand data structures and read API documentation
- SLM 8.3 and later
- SIM, including the new "SaaS - Generic Connector"
- API to query, including a user
- A platform, that you can run your scripts on
- Understanding what snow does and does not support.
- Must reads:
How it works
Normally, Snow's SaaS Connectors query:
- Licenses/subscriptions per Product,
- User details (including last logon, created, first login)
- License/subscription to User Assignments.
- Query a complete dataset, no deltas.
Check out the JSON Schema and example File:
generic_saas_schema.json, located in your SIM installation folder.
The example.json from the User Guide, also available in our GitHub repository
What it not does
Entering rates or prices - this will continue to be entered into Snow License Manager manually.
Optimization based on subscription usage, can only be realized by checking the optional last login date.
What Snow's Support supports
All products officially released by Snow are handled through support according to the Customer Support Terms | Snow Software. Nevertheless, in this case, there needs to be a Custom Tool to feed data into the SaaS - Generic Connector. No matter who created the Custom Tool, this will not be supported or maintained through the official Snow Support.This also includes any required changes that Snow makes to the provided JSON schema. All changes required to such Custom Tools will be charged, when handled through our services.
What needs to be done?
1. Mandatory preparations
- Find out what the customer (or you) need to pay for in that SaaS model; this means, products and license types/subscription types. (Snow prefers Users/Month)
- Find out how the user account used to query the data would need to be set up and how the vendor would like to see you pay for that great service.
- Get your hands on the vendors API Documentation. Contact the vendor's customer support if you are unable to find it or if required data is not available. Snow Support cannot help you with this task.
- Obtain a user account with appropriate rights
- Understand how the relevant data, provided in the API, relates to each other, so you have the data model ready.
- Know the specialties (pagination, rate limiting and so on)
2. Plan the Custom Tool
This is the central part of the programmatic efforts.
The Custom Tool should
- Authenticate at the third party API,
- query data,
- deliver complete data - SIM and SLM will not support differential update and expect every JSON file to include all users, subscriptions and assignments.
- (optional) process results, if necessary
- convert it into data according to the generic_saas_schema.json format, provided by Snow
- store the complete result on disk, where the SIM - SaaS Generic Connector can pick it up
- (optional) easy to understand error handling
- (optional) easy to schedule
- Having it documented
- (optional) unsure if your json meets the schema? https://www.jsonschemavalidator.net/
3. Build the Custom Tool
As it will be created by a professional, you can use any language you like to achieve the required results. It's totally up to you.
4. configure the SaaS - Generic Connector and SLM
Set up one SaaS - Generic Connector per product and instance queried and let Snow Integration Manager and Snow License Manager do their job.
That's it for the first part. Find the second part here, when we start investigating our API and carrying all the necessary preparations.