API extension classes
Summarize
Summary of API extension classes
The CMDB CI Class Models ServiceNow Store app enhances the CMDB by adding or updating classes related to APIs (application programming interfaces). These classes extend the CMDB class hierarchy, providing structured data models for representing APIs, their components, gateways, and related entities. This extension supports applications like Discovery and Service Mapping Patterns to populate CIs and discover API technologies and software.
Show less
APIs enable communication between software programs, typically using web technologies, and these new classes help you gain visibility into APIs, identify security risks, and manage API-related data within ServiceNow.
Key Features
- New and extended classes: Including API [cmdbciapi], API Component, API Frontend, API Backend, API Gateway, Managed API, API Product Bundle, and API Consumer Subscription, among others.
- Attributes for API classes: Detailed attributes such as Base URL, Type (REST, SOAP, HTTP, gRPC, GraphQL, Websocket), Version, Spec Location, Authorization methods, and more, enabling comprehensive API metadata management.
- Support for tagging and key-value metadata: Many classes support mapping to the Key Value [cmdbkeyvalue] table for flexible metadata storage.
- API Gateway marker classes: Specific subclasses for popular gateways like MuleSoft Anypoint, Tyk, and Boomi, with no changes required to existing Identification and Reconciliation Engine (IRE) rules.
- Relationship modeling: Defined relationships among API classes (e.g., APIs use API Components, API Gateways provide APIs, Managed APIs depend on Gateways), facilitating clear dependency mapping.
- Non-CMDB related tables: Additional tables such as API Deployment, API Header, API Consumer, API Consumer Access, and API Policy extend management capabilities beyond core CMDB classes.
Practical Benefits for ServiceNow Customers
- Enables accurate representation and management of APIs and their components within the CMDB.
- Supports enhanced discovery and mapping of API technologies using ServiceNow Discovery and Service Mapping.
- Improves visibility into API infrastructure, including gateways and managed APIs, helping identify vulnerabilities and security issues.
- Facilitates governance of API products, consumer subscriptions, and access policies to streamline API consumption and security.
- Allows integration of API metadata and deployment details, aiding in lifecycle and operational management.
What to Expect
By implementing these API extension classes, you can expect a comprehensive and structured approach to managing APIs as configuration items in ServiceNow. This supports better asset management, security oversight, and operational efficiency related to your API ecosystem. The classes and attributes provided enable detailed tracking and relationship mapping, ensuring your CMDB reflects your API landscape accurately.
The CMDB CI Class Models ServiceNow Store app adds or updates classes for APIs (application programming interface).
CMDB CI Class Models is a ServiceNow Store app that adds class models that extend the CMDB class hierarchy. The new or updated classes include class descriptions, identification rules, identifier entries, and, if applicable, dependent relationships. You can use the added classes just like any other CMDB class. Applications such as Discovery and Service Mapping Patterns can use the class extensions to populate CIs and discover technologies and software.
See the release notes for all CMDB CI class models.
Request apps on the Store
Visit the ServiceNow Store to view all the available apps, and for information about submitting requests to the store. For cumulative release notes information for all released apps, see the ServiceNow Store version history release notes.
APIs
APIs are a set of definitions and protocols that enable computer programs to communicate with each other, which enables you to build or integrate application software. APIs typically use web-based technology to communicate with other APIs. APIs are generally used to programmatically perform jobs or tasks, or to view, import, export, delete, or modify data.
- Gain greater visibility into your APIs.
- Identify security issues and vulnerabilities associated with an API endpoint.
Classes
This section lists the classes that the CMDB CI Class Models app adds or updates. For additional detail, see the Community article titled "New Data Model in CMDB for APIs".
CMDB CI Class Models: The following classes for API are available. For the list of classes in the base system, including classes that this app might extend, see CMDB tables descriptions.
| Class | Extends | Description |
|---|---|---|
| API [cmdb_ci_api] |
Configuration item [cmdb_ci] |
APIs that enable two computer programs to communicate with each other, typically using web-based technologies. Example: ChatAPI (https://[apiID].execute-api.use-east-2.amazonaws.com). |
| API Component [cmdb_ci_api_component] |
Configuration item [cmdb_ci] |
Reusable objects related to your API definition that facilitate functionality or exchange of data. API Headers related list. Example: GET https://[instance].service-now.com/api/now/table/{tablename}. |
| API Frontend [cmdb_ci_api_frontend] |
API Component [cmdb_ci_api_component] |
The part of an API from which a client or user interacts or makes requests. Example: GET https://[apiID].execute-api.us-east-2.amazonaws.com/{proxy+}. |
| API Backend [cmdb_ci_api_backend] |
API Component [cmdb_ci_api_component] |
The part of an API that fulfills requests by interacting with backend services, such as servers. Example: Lambda:Chat-API-Proxy. |
| API Gateway [cmdb_ci_api_gateway] |
Application [cmdb_ci_appl] |
API infrastructure that centralizes client API requests and manages backend processes and services. Example: Kong Gateway. |
| Managed API [cmdb_ci_managed_api] |
Configuration item [cmdb_ci_api] |
API discovered from a gateway or management service. You can enforce a dependency on a gateway for APIs in this class. |
Class attributes
CMDB CI Class Models: Release 1.49.0 adds the following attributes to the respective classes.
| Attribute | Data type | Description |
|---|---|---|
| Base URL | String (1024) | Base address from which all API components extend. |
| ID | String (1024) | Unique identifier from the source system. |
| Type | List | Type of API. You can specify:
|
| Version | Numeric | Version of the API. |
| Spec Location | URL | URL to the location of the API specification. Example: OpenAPI spec definition. |
| Technical Specification Location | String | Location of the technical specification repository for an API. Example: GitHub repository containing the deployed API code. |
| Design Specification Location | String | URL to the location of the API design or documentation. Example: SwaggerHub API Design Specification URL. |
| Attribute | Data type | Description |
|---|---|---|
| Method | String | REST API methods. Examples:
|
| Protocol | String | Communication protocol. Example: HTTP, HTTPS. |
| Host | String (100) | System that hosts the API. |
| Path | String (1024) | Specific route the API follows. |
| Port | String | Communication port. Example: 80, 443, and so on. |
| URL | String (1024) | URL of the resource being called. |
| ID | String (1024) | Unique identifier from the source system. |
| Internet Facing | Boolean | Boolean that denotes whether the component is reachable from the public internet. Specify 1 or "true" if the component is reachable. |
| Authorization | String | Type of authorization or authentication method. Example:
|
| Request data types | String (255) | List of data types in the request. Examples:
|
| Response data types | String (255) | List of data types in the response. Examples:
|
| Attribute | Data type | Description |
|---|---|---|
| Parent ID | Reference to [cmdb_ci_api_frontend] | Reference to a parent API component. |
| Attribute | Data type | Description |
|---|---|---|
| Type | String | Backend protocol types of the API. Examples:
|
| Attribute | Data type | Description |
|---|---|---|
| ID | String (255) | Unique identifier from the source system. |
- Anypoint API Gateway [cmdb_ci_api_gateway_anypoint] (provided by MuleSoft)
- Tyk API Gateway [cmdb_ci_api_gateway_tyk] (provided by Tyk)
- Boomi API Gateway [cmdb_ci_api_gateway_boomi] (provided by Boomi)
| Attribute | Data type | Description |
|---|---|---|
| ID | String (255) | Unique identifier of the API product bundle. |
| Discovered Approval Type | String | Type of request approval as discovered from the source system. |
| Discovered Access Type | String | Access configuration as discovered from the source system. For example, public or internal. |
| Creation Date | Date/Time | Date and time when the API product bundle was initially discovered or recorded. |
| Last Modified Date | Date/Time | Date and time of the most recent update to the API product bundle. |
| Discovered State | String | Current state of the product bundle as reported by the source. For example, published or deprecated. |
| Attribute | Data type | Description |
|---|---|---|
| Discovered Scope | String | Scope of access as discovered from the source system. For example, all APIs or specific APIs. |
| API Consumer | Reference | Reference to the API consumer record. For example, cmdb_ci_api_consumer. |
| ID | String (255) | Unique identifier of the API consumer subscription. |
| Discovered State | String | Subscription status as discovered from the source system. For example, active or inactive. |
| Creation Date | Date/Time | Date and time when the API consumer subscription was created in the source system. |
| Last Modified Date | Date/Time | Date and time of the most recent update to the API consumer subscription. |
The WebACL class [cmdb_ci_web_acl] represents ACLs for CloudFront, API gateway REST APIs, application load balancers, AppSync GraphQL APIs, Cognito user pools, App Runner services, AWS Verified Access, and the Azure Front Door application gateway.
Key relationship structures
There are a number of key relationships that must be defined for API and Kong classes.
| Parent class | Relationship | Child class | Relationship type |
|---|---|---|---|
| API [cmdb_ci_api] |
Uses::Used by | API Component [cmdb_ci_api_component] |
Suggested |
| API Gateway [cmdb_ci_api_gateway] |
Provides::Provided By | Managed API [cmdb_ci_managed_api] |
Dependent |
| API Frontend [cmdb_ci_api_frontend] |
Use End Point To::Use End Point From | API Backend [cmdb_ci_api_backend] |
Suggested |
| API Backend [cmdb_ci_api_backend] |
Uses::Used By | Kong Load Balancer [cmdb_ci_kong_lb] |
Suggested |
| API Gateway [cmdb_ci_api_gateway] |
Provides::Provided By | API Product Bundle [cmdb_ci_api_product_bundle] |
Dependent |
| API Gateway [cmdb_ci_api_gateway] |
Provides::Provided By | API Consumer Subscription [cmdb_ci_api_consumer_subscription] |
Dependent |
| API Product Bundle | Contains::Contained by | API [cmdb_ci_api] |
Suggested |
| API Product Bundle | Used by::Uses | API Consumer Subscription [cmdb_ci_api_consumer_subscription] |
Suggested |
Related non-CMDB tables
CMDB CI Class Models v 1.49.0 introduces the following non-CMDB tables as related lists for the following API extension classes:
- API related list
Table 9. API Deployment [api_deployment] Attribute Data type Description Name String (100) Name of the API deployment. API Reference Reference to the deployed API (cmdb_ci_api). Unmatched API Endpoint Reference Reference to the unmatched API endpoint, if the API doesn't match an existing API (cmdb_ci_unmatched_api_endpoint). Configuration item Reference Reference to the Configuration item. This is typically manually specified as a reference, if you know what CI the API is deployed to. Note:The API Deployment non-CMDB table relates to both the API [cmdb_ci_api] and Unmatched API Endpoint [cmdb_ci_unmatched_api_endpoint] classes.- API Component related list
Table 10. API Header [api_header] Attribute Data type Description Name String (100) Name of the API header. API Component Reference Reference to the component where the API header is defined (cmdb_ci_api_component). Unmatched API Endpoint Reference Reference to the unmatched API when the endpoint can't be matched to an existing API or component (cmdb_ci_unmatched_endpoint). - API Gateway related lists
Table 11. API Consumer [api_consumer] Attribute Data type Description Username String (100) Name of the API consumer.
Note:The Consumer field in the api_policy table is a reference field. To display the username in the Username field on the API Policies list, you must set the display attribute of Username totrue. If the attribute is not set totrue, then the list displays the Sys ID instead.ID String (255) Unique identifier from the source system. Custom ID String (100) Alternate display name of the user. API Gateway Reference Reference to the gateway where the consumer is defined (cmdb_ci_api_gateway). API Consumer Type List API user type (user_type). You can specify: - Internal
- External
- Unknown
Discovered State String Represents the current status of the API consumer's account. Provider String Name of the identity management provider responsible for authenticating the API consumer. Email String Email address of the API consumer. Registration Date Date/Time Date the consumer registered with the providing platform.