@janus-idp/backstage-scaffolder-backend-module-servicenow
TypeScript icon, indicating that this package has built-in type declarations

1.4.3 • Public • Published

ServiceNow actions for Backstage

This plugin provides Backstage template actions for ServiceNow.

The following actions are currently supported in this plugin:

Prerequisites

Installation

Run the following command to install the action package in your Backstage project:

yarn workspace backend add @janus-idp/backstage-scaffolder-backend-module-servicenow

Installing the action on the legacy backend

Register the ServiceNow actions by modifying the packages/backend/src/plugins/scaffolder.ts file from your project with the following changes:

/* highlight-add-next-line */
import { createServiceNowActions } from '@janus-idp/backstage-scaffolder-backend-module-servicenow';

export default async function createPlugin(
  env: PluginEnvironment,
): Promise<Router> {
  // ...

  /* highlight-add-next-line */
  const actions = [
    ...builtInActions,
    ...createServiceNowActions({ config: env.config }),
  ];

  return await createRouter({
    actions,
    logger: env.logger,
    config: env.config,
    database: env.database,
    reader: env.reader,
    catalogClient,
    identity: env.identity,
  });
}

Installing the action on the new backend

Add the following to your packages/backend/src/index.ts file:

const backend = createBackend();

// Add the following line
backend.add(
  import('@janus-idp/backstage-scaffolder-backend-module-regex/alpha'),
);

backend.start();

Configuration

Update the app-config.yaml file to include the following config:

servicenow:
  # The base url of the ServiceNow instance.
  baseUrl: ${SERVICENOW_BASE_URL}
  # The username to use for authentication.
  username: ${SERVICENOW_USERNAME}
  # The password to use for authentication.
  password: ${SERVICENOW_PASSWORD}

Usage

Action : servicenow:now:table:createRecord

Request Type: POST

Input

Parameter Name Type Required Description
tableName string Yes Name of the table in which to save the record
requestBody Record<PropertyKey, unknown> No Field name and the associated value for each parameter to define in the specified record
sysparmDisplayValue enum("true", "false", "all") No Return field display values (true), actual values (false), or both (all) (default: false)
sysparmExcludeReferenceLink boolean No True to exclude Table API links for reference fields (default: false)
sysparmFields string[] No An array of fields to return in the response
sysparmInputDisplayValue boolean No Set field values using their display value (true) or actual value (false) (default: false)
sysparmSuppressAutoSysField boolean No True to suppress auto generation of system fields (default: false)
sysparmView string No Render the response according to the specified UI view (overridden by sysparm_fields)

Output

Name Type Description
result Record<PropertyKey, unknown> The response body of the request

Action : servicenow:now:table:deleteRecord

Request Type: DELETE

Input

Parameter Name Type Required Description
tableName string Yes Name of the table in which to delete the record
sysId string Yes Unique identifier of the record to delete
sysparmQueryNoDomain boolean No True to access data across domains if authorized (default: false)

Action : servicenow:now:table:modifyRecord

Request Type: PUT

Input

Parameter Name Type Required Description
tableName string Yes Name of the table in which to modify the record
sysId string Yes Unique identifier of the record to modify
requestBody Record<PropertyKey, unknown> No Field name and the associated value for each parameter to define in the specified record
sysparmDisplayValue enum("true", "false", "all") No Return field display values (true), actual values (false), or both (all) (default: false)
sysparmExcludeReferenceLink boolean No True to exclude Table API links for reference fields (default: false)
sysparmFields string[] No An array of fields to return in the response
sysparmInputDisplayValue boolean No Set field values using their display value (true) or actual value (false) (default: false)
sysparmSuppressAutoSysField boolean No True to suppress auto generation of system fields (default: false)
sysparmView string No Render the response according to the specified UI view (overridden by sysparm_fields)
sysparmQueryNoDomain boolean No True to access data across domains if authorized (default: false)

Output

Name Type Description
result Record<PropertyKey, unknown> The response body of the request

Action : servicenow:now:table:retrieveRecord

Request Type: GET

Input

Parameter Name Type Required Description
tableName string Yes Name of the table from which to retrieve the record
sysId string Yes Unique identifier of the record to retrieve
sysparmDisplayValue enum("true", "false", "all") No Return field display values (true), actual values (false), or both (all) (default: false)
sysparmExcludeReferenceLink boolean No True to exclude Table API links for reference fields (default: false)
sysparmFields string[] No An array of fields to return in the response
sysparmView string No Render the response according to the specified UI view (overridden by sysparm_fields)
sysparmQueryNoDomain boolean No True to access data across domains if authorized (default: false)

Output

Name Type Description
result Record<PropertyKey, unknown> The response body of the request

Action : servicenow:now:table:retrieveRecords

Request Type: GET

Input

Parameter Name Type Required Description
tableName string Yes Name of the table from which to retrieve the records
sysparmQuery string No An encoded query string used to filter the results
sysparmDisplayValue enum("true", "false", "all") No Return field display values (true), actual values (false), or both (all) (default: false)
sysparmExcludeReferenceLink boolean No True to exclude Table API links for reference fields (default: false)
sysparmSuppressPaginationHeader boolean No True to suppress pagination header (default: false)
sysparmFields string[] No An array of fields to return in the response
sysparmLimit int No The maximum number of results returned per page (default: 10,000)
sysparmView string No Render the response according to the specified UI view (overridden by sysparm_fields)
sysparmQueryCategory string No Name of the query category (read replica category) to use for queries
sysparmQueryNoDomain boolean No True to access data across domains if authorized (default: false)
sysparmNoCount boolean No Do not execute a select count(*) on table (default: false)

Output

Name Type Description
result Record<PropertyKey, unknown> The response body of the request

Action : servicenow:now:table:updateRecord

Request Type: PATCH

Input

Parameter Name Type Required Description
tableName string Yes Name of the table in which to update the record
sysId string Yes Unique identifier of the record to update
requestBody Record<PropertyKey, unknown> No Field name and the associated value for each parameter to define in the specified record
sysparmDisplayValue enum("true", "false", "all") No Return field display values (true), actual values (false), or both (all) (default: false)
sysparmExcludeReferenceLink boolean No True to exclude Table API links for reference fields (default: false)
sysparmFields string[] No An array of fields to return in the response
sysparmInputDisplayValue boolean No Set field values using their display value (true) or actual value (false) (default: false)
sysparmSuppressAutoSysField boolean No True to suppress auto generation of system fields (default: false)
sysparmView string No Render the response according to the specified UI view (overridden by sysparm_fields)
sysparmQueryNoDomain boolean No True to access data across domains if authorized (default: false)

Output

Name Type Description
result Record<PropertyKey, unknown> The response body of the request

Package Sidebar

Install

npm i @janus-idp/backstage-scaffolder-backend-module-servicenow

Weekly Downloads

322

Version

1.4.3

License

Apache-2.0

Unpacked Size

283 kB

Total Files

24

Last publish

Collaborators

  • nickboldt
  • tomaskral
  • tumido