Use Case : Tenant Management system integration with APIGEE.

Use Case:

We need to integrate our Tenant Management System (TMS) with APIGEE

Installed APIGEE Edge with only one environment (NON-PROD)

We have around 100 API Proxies categorized into 5 different API Products (p1, p2, p3, p4, p5)

Each of 5 API Products will have (Silver, Gold and Platinum) based on different thresholds so there will be in all 15 products (p1_silver, p1_gold, p1_platinum, p2_silver....)

Now a Tenant (T1) is created in TMS with three environments (Test, Dev, UAT), later on T1 can have more environments (Test1, Test2..)

We have below queries :

1. Best approach to create Developer and Developer Apps (API Keys) on Developer Portal with above use case for Tenant with different environments

Keeping in mind that APIGEE Edge has only one environment (NON-PROD)

2. Need to leverage Developer Portal self service capabilities with Tenant Users can register themselves

and create their Dev Apps for their different environments with different API Keys. Association of API Key with Tenant?

3. Some workflow of approvals by client (T1) admin and then approval by our organization to ensure that Dev Apps are created using right API Products (Silver, Gold..)

4. Need to have tenant specific dashboard for analytics so that tenant admin can check the usage of their Developer Apps

5. How tenant admin can revoke the API Key if one of the tenant user leaves the organization.

6. Is there a way that tenant admin can somehow change the association of Dev App to another developer with different API Key.

7. Keeping in mind the scalability and performance factors.

0 6 779
6 REPLIES 6

Dear @GAURAV ,

Great Questions, Welcome to Apigee Community 🙂

Before, I start answering your questions, I have a question, 100 API Proxies ?!! Either you have lot of resources that needs to be exposed or APIs are designed poorly in Apigee Edge. Based on our experience dealing with large API Programs, Ideally 20 - 25 API proxies are considered as large. You need to design your API proxies such as way that you won't end up managing multiple endpoints. For Example, owner API Proxy will have different conditional flows like CREATE, UPDATE, GET, DELETE whith in a single proxy.

that is not a lot of proxies.....

Thanks Anil for quick response.

Basically we have many legacy XML API's which we have converted in REST API's. Also our workforce product is in place many years back. Now we want to expose these REST API's through APIGEE. These are all different API Proxies each having different resources like GET,POST,PUT,DELETE..

Got it, Thanks for the more details @GAURAV .

Q : Best approach to create Developer and Developer Apps (API Keys) on Developer Portal with above use case for Tenant with different environments. Keeping in mind that APIGEE Edge has only one environment (NON-PROD)

Environments doesn't matter for Apigee Developer Portal. Apigee Developer Portal fetches all API Products marked as public from Apigee Edge. Creation of developers, developer apps doesn't have any impact on one vs many environments.

Q : Need to leverage Developer Portal self service capabilities with Tenant Users can register themselves and create their Dev Apps for their different environments with different API Keys. Association of API Key with Tenant?

Yes, Works out of the box & self served as you said. Apigee Developer Portal provides above mentioned features out of the box.

Q : Some workflow of approvals by client (T1) admin and then approval by our organisation to ensure that Dev Apps are created using right API Products (Silver, Gold..)

Yes, this is where Apigee Developer Portal shines & perfect example for Apigee Edge as a platform. We have implemented above like workflows for many clients in Developer Portal. It's called multi level approval of apps. You will make by default API Products as manual approval. You will create screens like list all Apps in Apigee Developer portal using Apigee Management APIs & Apigee PHP SDK that comes with Apigee Developer Portal. You need Drupal custom module development expertise to build same.

First level / subsequent levels except final level approvals, you will store the data in Drupal data store MySQL. Last level approval you will call management API in edge to approve app.

Q. Need to have tenant specific dashboard for analytics so that tenant admin can check the usage of their Developer Apps

You can able to customise Apigee Developer portal to build these dashboards using Apigee Management API. Again, It's a customization and need some level of drupal module development expertise.

Q. Is there a way that tenant admin can somehow change the association of Dev App to another developer with different API Key.

I don't think there is any out of the box way to achieve same. See similar question asked here

Q : Keeping in mind the scalability and performance factors

Apigee Edge is all about,

  • Availability at Scale
  • Efficiency at Scale
  • Intelligence at Scale

As long as you follow best design practices of your APIs, rest is assured and Apigee takes care of scaling as per need on cloud.

Thanks for the detailed response.

Before coming to Developer Portal self service for Tenant Management. We want to know the best approach on how our API Proxies and API Products will be deployed with our below requirements.

1. We will have only one environment (NON-PROD) for Non-Prod installation of APIGEE.

2. We will have API Proxies (appx 500 - may increase) to be classified based on Internal Classification in 5 different API Products.

3. Tenant will have different NON-PROD environments like DEV,UAT,TEST,STAGING and it can increase. 4. Our application will also have different envts like DEV,UAT,TEST,STAGING.

Now we have below queries with above requirements

1. How API Proxies will be able to resolve different available environments of our application as we want API Proxy Back Endpoint to be dynamically resolved.

2. How API Products will be created for different environments of Tenant as API Edge has only one NON-PROD envt.

3. How we should classify the API Products based on thresholds (Gold,Silver,Bronze) for different envts of Tenant. Is this the right approach how we should divide the products to be available for Tenant on Developer Portal.

4. What would be the best design from APIGEE prespective