API extension classes

  • Release version: Xanadu
  • Updated October 10, 2024
  • 5 minutes to read
  • The CMDB CI Class Models store app adds or updates classes for APIs (application programming interface).

    The app adds class models that extend the CMDB class hierarchy, including class descriptions, identification rules, identifier entries, and dependent relationships (if applicable). You can use the added classes as any other CMDB class. Applications such as Discovery and Service Mapping Patterns can use these class extensions to populate CIs and discover various technologies and software.

    Request apps on the Store

    Visit the ServiceNow Store website 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.

    The classes added in this release extend the data model and provide a foundation for the representation of API CI classes. You can use this foundation to do the following:
    • 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 store app adds or updates.

    CMDB CI Class Models: Release 1.49.0 adds the following classes for API. For the list of CMDB classes in a base system, including ones that this store app might be extending, 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. 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.

    Table 1. API [cmdb_ci_api]
    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 Choice list Type of API. You can specify:
    • REST
    • SOAP
    • HTTP
    • gRPC
    • GraphQL
    • Websocket
    Version Numeric Version of the API.
    Spec Location URL URL to the location of the API specification. Example: OpenAPI spec definition.
    Table 2. API Component [cmdb_ci_api_component]
    Attribute Data type Description
    Method String REST API methods. Examples:
    • GET
    • POST
    • DELETE
    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:
    • Basic
    • Key
    • OAuth
    • None
    Request data types String (255) List of data types in the request. Examples:
    • CC
    • Email
    • Address
    Response data types String (255) List of data types in the response. Examples:
    • CC
    • Email
    • Address
    Table 3. API Frontend [cmdb_ci_api_frontend]
    Attribute Data type Description
    Parent ID Reference to [cmdb_ci_api_frontend] Reference to a parent API component.
    Table 4. API Backend [cmdb_ci_api_backend]
    Attribute Data type Description
    Type String Backend protocol types of the API. Examples:
    • Lambda
    • HTTP
    • Logic App
    Table 5. API Gateway [cmdb_ci_api_gateway]
    Attribute Data type Description
    ID String (255) Unique identifier from the source system.
    Note:
    Managed API [cmdb_ci_managed_api] is specific to APIs discovered from gateways and other managed services, and does not introduce new attributes at this time.

    Key Relationship Structures

    There are a number of key relationships that must be defined for API and Kong classes.

    Table 6. API relationships
    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

    Related non-CMDB tables

    CMDB CI Class Models v 1.49.0 introduces these non-CMDB tables as related lists for the following API extension classes:

    API related list
    Table 7. 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 8. 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 9. 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 to true. If the attribute is not set to true, 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).
    Table 10. API Policy [api_policy]
    Attribute Data type Description
    Name String (100) Name of the API policy.
    ID String (255) Unique identifier from the source system.
    Frontend Reference Reference to the API Frontend (cmdb_ci_api_frontend).
    Managed API Reference Reference to the Managed API (cmdb_ci_managed_api).
    Consumer Reference Reference to the API Consumer (api_consumer) non-CMDB table.
    Note:
    Consumer is a reference field. To display the Username in the API Policies list, you must set the display attribute to true for Username field in the api_consumer table. If the attribute is not set to true, then the list displays the Sys ID instead.
    Protocols String Array of protocols that this API policy can apply to.
    Active Boolean Determines if this non-CMDB table is considered active or inactive.
    API Gateway Reference Reference to the gateway where the consumer is defined (cmdb_ci_api_gateway).