SAMi - Smart API Marketplace Documentation

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Overview

SAMi, Smart API Marketplace is a platform product designed to provide digital solutions for tech e-commerce website businesses. It assists in driving and accelerating the adoption of new revenue streams in the market through digital transformations. SAMi offers comprehensive solutions for companies, with wide-ranging capabilities aimed at generating focused value. For more information, please visit the official SAMi website. SAMi

SAMi can be deployed from GCP marketplace by -

  1. UI inputs

  2. Command-line steps


Below are a few details on SAMi and crisp steps to install SAMi & proceed to configure, use & accelerate your business. To activate SAMi license, please contact or send an email to - sami-connect@sidgs.com

For any further queries, get in touch with SAMi Support - /wiki/spaces/SAMI2/pages/2652995874

1. How does SAMi help your business?

Expedite the time to market for digital services

  • Micro-service to API assets creation & publishing

  • Co-own assets for better collaboration & quicker market responses

 

Streamline the partner onboarding and enhance experience

  • Role based Workflow Task Automation with teams & approvals

  • User-friendly UI interface - single-click approach with invite users

  • Self service - Discover API Products, Try APIs real-time & API Subscription capabilities

 

Supercharge partner and developer engagement

  • One stop shop to drive digital growth

  • Organized, yet flexible & firm ecosystem build, learn & change enablement

  • Unified portal for UAT and production entitlement & consumption

 

A Comprehensive catalog of APIs

  • Powerful search and filtering with horizontal Categorizations

  • Summarized & detailed views of API Products, Description, sandbox - endpoints, parameters, responses, documentation, and support elements for app building

  • BIAN Reference catalog

 

Proactively manage your API products and portfolios

  • Regular usage feedback using analytics based on personas

  • Built-in tools for quick asset onboarding & Publishing

 

Future proof your technology, business & reach

  • Through a robust, cloud-native, pre-secured and resilient platform.

  • SAMi is extensible with multiple API gateway platforms for a unified marketplace experience

Below is a brief on licensed features of SAMi -

Product-APIs Marketplace/ Developer portal

  • A unique APIs marketplace with API-Product catalogs, Order Management, Entitlement Management & Fulfillment

  • Elastic Search for Products across multiple categories

  • User Dashboards for Product Managers, Developers, Partners

  • Marketplace styling, Notifications and Alerts

Developer-Hub & Publisher-Hub Integrations

  • Onboard Developers by invite or signup option

  • Unified Experience for all api-products listed in the same platform with options to test using available SDKs and API specifications

  • API proxies, APIs design, development and test facilitation in various environments [Developer, UAT, Pre-prod, production]

  • Multiple Apps subscription & Teams creation for effective collaboration

  • Community forums & Knowledge-Base for broader collaboration & community building

Product Management with Monetization

  • Unified Product Catalog Management of multiple Product categories

  • Set Recommendations of Products for user consumption

  • Monetize API-Products with personalized Rate plans for products with a single product supporting multiple rate plans

  • User Ratings for products

Subscription Management

  • Centralized Subscription Management for all category API products

  • Active & Inactive subscription listings with individual Active durations & Subscription Approval Management

  • Profile Management of individual developers, Product Managers, and Administrators

  • Product Unsubscribe and App disablement options are available

Assets management

  • Manage all assets like SDKs, API specifications, Product Features & FAQs from a single pane

  • Reuse Assets for Products resulting in efficient portfolio consolidation

  • Create & manage Product SKUs with versioning & permissions for users

  • Optional workflow for asset publishing

Analytics

  • API Usage statistics

  • Individual Rate-based billing reports

  • Product Analytics for user engagement

2. SAMi Architecture

Architecture diagram

3. Deploy SAMi -

About Google Click to Deploy

Popular open-source software stacks on Kubernetes, packaged by Google is a standard method used to deploy SAMi.

Pre-requisites:

To Deploy a Kubernetes Application, you need the following permissions:

Project: <Enter your project name>

All of:

  • container.thirdPartyObjects.create

  • container.thirdPartyObjects.update

  • container.roleBindings.create

  • container.jobs.create

  • container.configMaps.create

  • container.secrets.create

To acquire access, contact your organization administrator.

To request SAMi license, please contact or send an email to - sami-connect@sidgs.com

For any further queries, get in touch with SAMi Support - /wiki/spaces/SAMI2/pages/2652995874

Quick install with Google Cloud Marketplace

Get up and running with a few clicks! To install SAMi application to a Google Kubernetes Engine cluster using Google Cloud Marketplace, click on - Deploy SAMi on GCP Marketplace.

The below page is loaded on clicking the above link or when the Configure button is clicked on SAMi listing in the GCP marketplace.

The image provided showcases the deployment page for the SAMi application, highlighting several key fields:

  • Existing Kubernetes Cluster: This dropdown menu enables the selection of an existing Kubernetes cluster for deploying the application. Kubernetes is renowned for its capability to automate - deployment, scaling, and management of containerized applications.

  • Namespace: Designates the Kubernetes namespace targeted for application deployment. Namespaces are devised for scenarios with numerous users distributed among various teams or projects.

  • App Instance Name: Assigns a unique identifier or name to this particular application instance.

  • operator.serviceAccountName: This field is utilized to either create a new service account or designate an existing one. This account is used by the operator (application) to interact with the Kubernetes API.

  • Portal Hostname: Specifies the hostname for the portal, providing user access to the application. An example hostname is provided below:

    sample.application.io
  • Management URL for Integration: Outlines the URL for managing the application's integration with other services or platforms. The URL format is specified as follows:

    https://<portal hostname>/vsp/api/vds

    An example for reference:

    https://sample.application.io/vsp/api/vds

    https://sample.application.io/vds/vsp/api

  • Liferay URL: This URL is crucial for integrating the Liferay application to serve the UI portal. The required URL format is:

    https://<portal hostname>/

    For instance:

    https://sample.application.io/
  • Use Inbuilt Standalone Database: This toggle option determines whether to utilize the application's inbuilt standalone database.

The application fundamentally uses PostgreSQL as its underlying database. Should you opt to use your database, simply disable this toggle and fill in the fields numbered 9 to 12 with your database details.

  • Postgres Database Hostname (OPTIONAL): The hostname of the PostgreSQL database for application connectivity.

  • Postgres Database Name (OPTIONAL): Database name used for application connectivity.

  • Postgres Username (OPTIONAL): Username for connecting the application to the PostgreSQL database.

  • Postgres Database Password (OPTIONAL): Password for the PostgreSQL database connection.

  • Reporting Service Account: This dropdown menu facilitates the selection of a service account for reporting purposes. It authenticates and accesses GCP services to generate reports.

Note: Hostname, database name may contain only the ASCII letters a through z (in a case-insensitive manner), the digits 0 through 9, and the hyphen character ('-').

Command-line instructions

One can complete deployment of SAMi using these below steps with Google Cloud Shell or a local workstation.

"Need to place the SAMi GCP marketplace app link"

Prerequisites

Set up command-line tools

You'll need the following tools in your environment. If you use Cloud Shell, gcloud, kubectl, Docker, and Git are installed in your environment by default.

Configure gcloud as a Docker credential helper:

gcloud auth configure-docker

Create a Google Kubernetes Engine cluster

Create a cluster from command-line. If you already have a cluster that you want to use, skip this step.

export CLUSTER=sami-cluster
export ZONE=us-west1-a
gcloud container clusters create "$CLUSTER" --zone "$ZONE"

Configure kubectl to connect to the cluster

gcloud container clusters get-credentials "$CLUSTER" --zone "$ZONE"

Clone this repo

Clone this repo and its associated tools repo:

git clone --recursive https://github.com/GoogleCloudPlatform/click-to-deploy.git

Install the Application resource definition

An Application resource is a collection of individual Kubernetes components, such as Services, Deployments, and so on, that you can manage as a group.

To set up your cluster to understand Application resources, run the following command:

kubectl apply -f "https://raw.githubusercontent.com/GoogleCloudPlatform/marketplace-k8s-app-tools/master/crd/app-crd.yaml"

You need to run this command once for each cluster.

The Application resource is defined by the Kubernetes SIG-apps community. The source code can be found on github.com/kubernetes-sigs/application.

Install the app

Navigate to the SAMi directory:

cd click-to-deploy/k8s/SAMi

Configure the app with environment variables

Choose an instance name and namespace for the app. In most cases, you can use the default namespace.

export APP_INSTANCE_NAME=sami-platform
export NAMESPACE=sami-platform
export PORTALDB_USER=<db-username>
export PORTALDB_PASSWORD=<db-password>
export PORTALDB_URL=<db-url>
export NGINX_DOMAIN=<domain-name> 
export DB_HOST=<db-hostname>
export DB_NAME=<db-name>
export ORG_TYPE=<Apigee-org-type>

Expand the manifest template

helm template $APP_INSTANCE_NAME chart/sami-platform \
  --namespace $NAMESPACE \
  --set "global.portaldb.user=$PORTALDB_USER" \
  --set "global.portaldb.password=$PORTALDB_PASSWORD" \
  --set "global.portaldb.url=$PORTALDB_URL" \
  --set "global.nginx.domain.name=$NGINX_DOMAIN" \
  --set "global.env.normal.DB_HOST=$DB_HOST" \
  --set "global.env.normal.DB_NAME=$DB_NAME" \
  --set "global.env.secret.DB_USERNAME=$PORTALDB_USER" \
  --set "global.env.secret.DB_PASSWORD=$PORTALDB_PASSWORD" \
   > ${APP_INSTANCE_NAME}_manifest.yaml

Apply the manifest to your Kubernetes cluster

Use kubectl to apply the manifest to your Kubernetes cluster. This installation creates:

kubectl apply -f "${APP_INSTANCE_NAME}_manifest.yaml" --namespace "${NAMESPACE}"

4. Configure SAMi post installation

Once SAMi is deployed, it can be verified by logging into the browser by opening the

https://<portal hostname>/

It generally takes around 10-15 mins for initial setup for bringing up the UI.

SAMi license can be requested, applied as seen in steps of below link & further configured for application & usage from here - Configure SAMi Portal

5. Deleting your SAMi installation

kubectl delete -f ${APP_INSTANCE_NAME}_manifest.yaml --namespace $NAMESPACE

Alternately, you can delete the resources by using types and a label:

kubectl delete application \
  --namespace "${NAMESPACE}" \
  --selector "app.kubernetes.io/name=${APP_INSTANCE_NAME}"

Delete the GKE cluster

Optionally, if you no longer need the deployed app or the GKE cluster to which it is deployed, you can delete the cluster by running the following command:

gcloud container clusters delete "${CLUSTER}" --zone "${ZONE}"

  • No labels