Skip to content
Draft
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,26 @@
# ea-servicenow-guide
ServiceNow assets for EA solution guide
# Ironclad EA ServiceNow Example Code
This repository contains all of the ServiceNow application assets for the EA ServiceNow solution guide.

# Installing the ServiceNow application
## Create Github credential
You will need to create a credential in ServiceNow to hold an SSH key for an Github account that can access this repo. If you are only importing the application into ServiceNow (e.g., for a demo), then you only need read access to the repo. If you are making application changes that you want to save back to the repo, you will need read/write access.
### Create SSH Key
If you do not already have a suitable SSH key registered in your Github account, you will need to create one. Note that ServiceNow has limitations in terms of what encryption algorithms it will support for SSH credentials (e.g., it does NOT support ED25519 encryption, but it DOES support ECDSA).

Use whatever SSH key generation tool you have - if you are using ssh-keygen on a Mac or other Unix platform, you would do the following to create a new ECDSA key pair:

```
> cd ~/.ssh
> ssh-keygen -t ecdsa -C "<your Github account email address>"
```
### Register SSH key with your Github account
Comment thread
jimfarley-ironclad marked this conversation as resolved.
### Create ServiceNow SSH Credential

## Import ServiceNow Application
- Create an account/login to developer.servicenow.com
- Create a new developer instance if you don’t have one already
- In the developer instance, go to System Applications -> Studio (e.g., search for “Studio” in the main search)
- In the dialog that appears, choose "Import from Source Control"
- In the dialog that appears, choose the "ssh" option, enter the Github URL for the repository with the ServiceNow code (this repository), choose the SSH credential you create above, and specify the branch containing the code version you want.
## Configure Ironclad Webhooks
Once the application is loaded, you need to retrieve the endpoints of the Scripted REST resources defined in the app and register them to receive webhooks from your Ironclad instance. In Studio, navigate to the Inbound Integrations -> Scripted REST Resources, and for each item in this list, select it and capture the "Resource path" in the details for the REST endpoint. The full endpoint URL will be the domain of your developer instance (see your browser address bar, typically this will be of the form "devXXXX.service-now.com").
27 changes: 27 additions & 0 deletions a388c41397151110940a7b771153af49/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Generated files
This repository contains generated files and a checksum.

If you find yourself unable to import your repository due to the presence of files edited outside an instance of ServiceNow, merge commits that mix files from different revisions, or other data that does not match the checksum, you may recover using either of the following techniques:
* Remove the problem commits:
1. Clone your repository to a personal computer with the git command line tools installed and open a git command prompt in the repository root
2. Run `git log` and take note of the SHA1s of the problem commits
3. Build revert commits using `git revert SHA1` repeatedly, working backward in time, for each commit that introduced changes not generated by a ServiceNow instance
4. Run `git push`

* Overwrite the problem code snapshot with a known good one:
1. Clone your repository to a personal computer with the git command line tools installed and open a git command prompt in the repository root,
2. Locate a known good code snapshot and record its SHA1. For this step, `git log` can be useful.
2. Run `git reset --hard SHA1` to a commit that was generated by a ServiceNow instance
3. Run `git reset HEAD{1}`
4. Run `git add -A`
5. Run `git commit`
6. Run `git push`

**Notes on dependencies**
1. Dependencies will not show up in the list of changes but will be exported/imported
2. It is your responsibility to resolve the dependencies before installing an application. ServiceNow source control will not manage these for you. In case you installed an application before installing its dependencies:
2.1 Delete the application
2.2 Activate/install all required dependencies
2.3 Re-import the application from source control
Currently listed dependencies:
* Task table schema
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?><record_update>
<sys_choice action="INSERT_OR_UPDATE" field="agreement_type" table="x_749125_legal_i_0_legal_agreement_request" version="3">
<sys_choice_set action="INSERT_OR_UPDATE">
<element>agreement_type</element>
<name>x_749125_legal_i_0_legal_agreement_request</name>
<sys_class_name>sys_choice_set</sys_class_name>
<sys_created_by>admin</sys_created_by>
<sys_created_on>2022-08-18 22:18:03</sys_created_on>
<sys_name>agreement_type</sys_name>
<sys_package display_value="Legal Intake Management" source="x_749125_legal_i_0">a388c41397151110940a7b771153af49</sys_package>
<sys_policy/>
<sys_scope display_value="Legal Intake Management">a388c41397151110940a7b771153af49</sys_scope>
<sys_update_name>sys_choice_x_749125_legal_i_0_legal_agreement_request_agreement_type</sys_update_name>
</sys_choice_set>
</sys_choice>
</record_update>
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?><record_update>
<sys_choice action="INSERT_OR_UPDATE" field="agreement_type" table="x_749125_legal_i_0_legal_agreement_task" version="3">
<sys_choice_set action="INSERT_OR_UPDATE">
<element>agreement_type</element>
<name>x_749125_legal_i_0_legal_agreement_task</name>
<sys_class_name>sys_choice_set</sys_class_name>
<sys_created_by>admin</sys_created_by>
<sys_created_on>2022-10-16 22:21:10</sys_created_on>
<sys_name>agreement_type</sys_name>
<sys_package display_value="Legal Intake Management" source="x_749125_legal_i_0">a388c41397151110940a7b771153af49</sys_package>
<sys_policy/>
<sys_scope display_value="Legal Intake Management">a388c41397151110940a7b771153af49</sys_scope>
<sys_update_name>sys_choice_x_749125_legal_i_0_legal_agreement_task_agreement_type</sys_update_name>
</sys_choice_set>
<sys_choice action="INSERT_OR_UPDATE">
<dependent_value/>
<element>agreement_type</element>
<hint/>
<inactive>false</inactive>
<label>Master Service Agreement</label>
<language>en</language>
<name>x_749125_legal_i_0_legal_agreement_task</name>
<sequence/>
<synonyms/>
<sys_created_by>admin</sys_created_by>
<sys_created_on>2022-10-16 22:21:10</sys_created_on>
<sys_domain>global</sys_domain>
<sys_domain_path>/</sys_domain_path>
<value>MSA</value>
</sys_choice>
<sys_choice action="INSERT_OR_UPDATE">
<dependent_value/>
<element>agreement_type</element>
<hint/>
<inactive>false</inactive>
<label>Non-Disclosure Agreement</label>
<language>en</language>
<name>x_749125_legal_i_0_legal_agreement_task</name>
<sequence/>
<synonyms/>
<sys_created_by>admin</sys_created_by>
<sys_created_on>2022-10-16 22:21:48</sys_created_on>
<sys_domain>global</sys_domain>
<sys_domain_path>/</sys_domain_path>
<value>NDA</value>
</sys_choice>
</sys_choice>
</record_update>
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?><record_update table="sys_db_object">
<sys_db_object action="DELETE">
<access/>
<actions_access>true</actions_access>
<alter_access>true</alter_access>
<caller_access/>
<client_scripts_access>true</client_scripts_access>
<configuration_access>false</configuration_access>
<create_access>true</create_access>
<create_access_controls>false</create_access_controls>
<delete_access>false</delete_access>
<is_extendable>false</is_extendable>
<label>Legal Agreement Request</label>
<live_feed_enabled>false</live_feed_enabled>
<name>x_749125_legal_i_0_legal_agreement_request</name>
<number_ref/>
<provider_class/>
<read_access>true</read_access>
<scriptable_table>false</scriptable_table>
<super_class/>
<sys_class_name>sys_db_object</sys_class_name>
<sys_created_by>admin</sys_created_by>
<sys_created_on>2022-10-02 17:50:47</sys_created_on>
<sys_id>84bcbae52f121110443b5fd92799b6f8</sys_id>
<sys_mod_count>0</sys_mod_count>
<sys_name>Legal I 0 Legal Agreement Request</sys_name>
<sys_package display_value="Legal Intake Management" source="x_749125_legal_i_0">a388c41397151110940a7b771153af49</sys_package>
<sys_policy/>
<sys_scope display_value="Legal Intake Management">a388c41397151110940a7b771153af49</sys_scope>
<sys_update_name>sys_db_object_84bcbae52f121110443b5fd92799b6f8</sys_update_name>
<sys_updated_by>admin</sys_updated_by>
<sys_updated_on>2022-10-02 17:50:47</sys_updated_on>
<update_access>true</update_access>
<user_role/>
<ws_access>true</ws_access>
</sys_db_object>
<sys_update_version action="INSERT_OR_UPDATE">
<action>DELETE</action>
<application display_value="Legal Intake Management">a388c41397151110940a7b771153af49</application>
<file_path/>
<instance_id>65a8398ddb62dbc04f035d00cf9619c1</instance_id>
<instance_name>dev60711</instance_name>
<name>sys_db_object_84bcbae52f121110443b5fd92799b6f8</name>
<payload><![CDATA[<?xml version="1.0" encoding="UTF-8"?><record_update table="sys_db_object"><sys_db_object action="INSERT_OR_UPDATE"><access/><actions_access>true</actions_access><alter_access>true</alter_access><caller_access/><client_scripts_access>true</client_scripts_access><configuration_access>false</configuration_access><create_access>true</create_access><create_access_controls>false</create_access_controls><delete_access>false</delete_access><is_extendable>false</is_extendable><label>Legal Agreement Request</label><live_feed_enabled>false</live_feed_enabled><name>x_749125_legal_i_0_legal_agreement_request</name><number_ref/><provider_class/><read_access>true</read_access><scriptable_table>false</scriptable_table><super_class/><sys_class_name>sys_db_object</sys_class_name><sys_created_by>admin</sys_created_by><sys_created_on>2022-10-02 17:50:47</sys_created_on><sys_id>84bcbae52f121110443b5fd92799b6f8</sys_id><sys_mod_count>0</sys_mod_count><sys_name>Legal I 0 Legal Agreement Request</sys_name><sys_package display_value="Legal Intake Management" source="x_749125_legal_i_0">a388c41397151110940a7b771153af49</sys_package><sys_policy/><sys_scope display_value="Legal Intake Management">a388c41397151110940a7b771153af49</sys_scope><sys_update_name>sys_db_object_84bcbae52f121110443b5fd92799b6f8</sys_update_name><sys_updated_by>admin</sys_updated_by><sys_updated_on>2022-10-02 17:50:47</sys_updated_on><update_access>true</update_access><user_role/><ws_access>true</ws_access></sys_db_object></record_update>]]></payload>
<payload_hash>-1981645015</payload_hash>
<record_name>Legal Agreement Request</record_name>
<reverted_from/>
<source>d8a316332f021110443b5fd92799b613</source>
<source_table>sys_upgrade_history</source_table>
<state>previous</state>
<sys_created_by/>
<sys_created_on>2022-09-27 04:22:01</sys_created_on>
<sys_id>a4bcfae52f121110443b5fd92799b65b</sys_id>
<sys_mod_count/>
<sys_recorded_at>1837d2e2a280000000</sys_recorded_at>
<sys_updated_by/>
<sys_updated_on/>
<type>Table</type>
<update_guid>64bcfae5b1121110917681756900ed5b</update_guid>
<update_guid_history>64bcfae5b1121110917681756900ed5b:-1981645015</update_guid_history>
</sys_update_version>
<sys_metadata_delete action="INSERT_OR_UPDATE">
<sys_audit_delete/>
<sys_class_name>sys_metadata_delete</sys_class_name>
<sys_created_by>admin</sys_created_by>
<sys_created_on>2022-11-08 17:08:18</sys_created_on>
<sys_db_object display_value="" name="sys_db_object">sys_db_object</sys_db_object>
<sys_id>be4af075537f4d408d845e1a1744de40</sys_id>
<sys_metadata>84bcbae52f121110443b5fd92799b6f8</sys_metadata>
<sys_name>Legal Agreement Request</sys_name>
<sys_package display_value="Legal Intake Management" source="x_749125_legal_i_0">a388c41397151110940a7b771153af49</sys_package>
<sys_parent/>
<sys_policy/>
<sys_scope display_value="Legal Intake Management">a388c41397151110940a7b771153af49</sys_scope>
<sys_scope_delete display_value="">76957533a4164a94af24a6a3a42a2510</sys_scope_delete>
<sys_update_name>sys_db_object_84bcbae52f121110443b5fd92799b6f8</sys_update_name>
<sys_update_version display_value="sys_db_object_84bcbae52f121110443b5fd92799b6f8">a4bcfae52f121110443b5fd92799b65b</sys_update_version>
</sys_metadata_delete>
</record_update>
Loading