Skip to content

Commit

Permalink
Add servicenow extension (raycast#14894)
Browse files Browse the repository at this point in the history
* Add servicenow extension

- Make extension public
- Update README.md
- Create servicenow 2024-10-12 at 22.01.55.png
- Store prepping
- Updated assets
- cleanup
- Added Browser commands
- Added commands for quick search and open instances in browser
- Improved usage of mutations
- Improve refreshing of history when deleting selectedInstnce
- Added quick search and reviewed navigation title
- Update package.json
- Replaced white icons by gray
- Open in ServiceNow instead of browser and changed order of actions
- Merge pull request #1 from SwissFlowIt/roberto-search-history
- Update README.md
- Update README.md
- Update README.md
- Update README.md
- Code cleanup
- Simplified usage of cached instance
- Actions component refactoring
- Added submenu for selection of the instance
- Replaced instance icons
- Fix for when some tables appear duplicated in the search
- Used cached Instance everywhere instead of local state
- Improved error handling
- Fixed history fetch and refresh
- Fixed issue when ACLs don\'t allow to read fields
- Used cachedState in lit dropdowns
- Added result display component
- Improved list visualization
- Improved results filtering
- Allow to filter results by different values
- Refactored into components
- Replaced axios by useFetch
- Improved usage of colors and icons
- Show results in List
- Basic retrieval of content from ServiceNow
- Initial commit

* Update servicenow extension

- Fixed eslint
- Fixed eslint

* Fixed issue in quick-search-selected-instance

* Update servicenow extension

- Updated dist
- Updated metadata images
- Show more details from Documate results
- Fixed draft recovery in Add instance profile
- Search and quickly search selected instance were not using the right instance profile

* Update servicenow extension

- Updated dist
- Fixed open select instance and open current url in selected instance

* Update servicenow extension

- Update open-current-url.ts
- Refactored commands to don\'t depend on other commands
- Update .gitignore
- Delete dist directory
- Merge branch \'master\' of https://github.com/SwissFlowIt/raycast-servicenow
- Merge branch \'roberto\'
- Delete dist directory
- Merge branch \'roberto\'
- Merge pull request raycast#4 from SwissFlowIt/roberto
- Merge pull request raycast#3 from SwissFlowIt/roberto
- Merge pull request #2 from SwissFlowIt/roberto

* Update servicenow extension

- Update package.json
- Added Explore tables command

* Added shortcut to Remove from History action

Co-authored-by: Per Nielsen Tikær <[email protected]>

* Replaced shortcut for Clear All Items from History by the Common.RemoveAll

Co-authored-by: Per Nielsen Tikær <[email protected]>

* Update servicenow extension

- Merge branch \'contributions/merge-1729084890358269000\'
- Pull contributions
- Updated action shortcuts with Raycast\'s Common
- Update package.json
- Update package.json

* Update CHANGELOG.md and optimise images

---------

Co-authored-by: Per Nielsen Tikær <[email protected]>
Co-authored-by: raycastbot <[email protected]>
  • Loading branch information
3 people authored Oct 17, 2024
1 parent 2244e24 commit 584cc90
Show file tree
Hide file tree
Showing 39 changed files with 4,367 additions and 0 deletions.
4 changes: 4 additions & 0 deletions extensions/servicenow/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"root": true,
"extends": ["@raycast"]
}
15 changes: 15 additions & 0 deletions extensions/servicenow/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules

# Raycast specific files
raycast-env.d.ts
.raycast-swift-build
.swiftpm
compiled_raycast_swift

# misc
.DS_Store
/dist

4 changes: 4 additions & 0 deletions extensions/servicenow/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"printWidth": 120,
"singleQuote": false
}
3 changes: 3 additions & 0 deletions extensions/servicenow/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Search Documate Changelog

## [Initial Version] - 2024-10-17
21 changes: 21 additions & 0 deletions extensions/servicenow/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 SwissFlowIt

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
32 changes: 32 additions & 0 deletions extensions/servicenow/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# ServiceNow Raycast Extension

## Overview

The **ServiceNow Raycast Extension** allows you to easily search and explore content across your ServiceNow instances. With this extension, you can perform quick searches, manage instance profiles, and open specific instances or ServiceNow records in your browser.

## Features

- **Search:** View past searches, perform new queries, and switch between ServiceNow instances.
- **Manage Instance Profiles:** Configure and manage ServiceNow instance profiles for use in search queries.
- **Quick Search:** Search your ServiceNow instance instantly from the command window by entering a query without extra steps.
- **Open Instances:** Open all configured instances or the currently selected instance in the browser.
- **Open Current URL:** Open the current ServiceNow URL in a specified instance. This feature requires the [Raycast Browser Extension](https://www.raycast.com/browser-extension)

## Setup Instructions

### 1. ServiceNow Instance Profiles

Before using the extension, you'll need to configure your ServiceNow instance profiles. To do this:

- Use the **Manage Instance Profiles** command to add your ServiceNow instance information, including the instance name, username, and password.

### 2. Enabling User Access to Search Terms

To allow non-admin users to view and delete their past search terms, you'll need to install an **Update Set** in your ServiceNow instance.

#### Steps to install:

1. Download the update set [Allow access to user's search terms.xml](<media/Allow access to user's search terms.xml>).
2. Navigate to **System Update Sets > Retrieved Update Sets** in your ServiceNow instance.
3. Click **Import Update Set from XML** and upload the file.
4. Commit the update set to enable the functionality.
Binary file added extensions/servicenow/assets/servicenow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions extensions/servicenow/assets/servicenow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
110 changes: 110 additions & 0 deletions extensions/servicenow/media/Allow access to user's search terms.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?><unload unload_date="2024-10-12 18:39:31">
<sys_remote_update_set action="INSERT_OR_UPDATE">
<application display_value="Global">global</application>
<application_name>Global</application_name>
<application_scope>global</application_scope>
<application_version/>
<collisions/>
<commit_date/>
<deleted/>
<description/>
<inserted/>
<name>Allow access to user's search terms</name>
<origin_sys_id/>
<parent display_value=""/>
<release_date/>
<remote_base_update_set display_value=""/>
<remote_parent_id/>
<remote_sys_id>c63cebab834d16d012bac7a6feaad32d</remote_sys_id>
<state>loaded</state>
<summary/>
<sys_class_name>sys_remote_update_set</sys_class_name>
<sys_created_by>robertoalvarezalonso</sys_created_by>
<sys_created_on>2024-10-12 18:39:31</sys_created_on>
<sys_id>7ee9438c8395121012bac7a6feaad37d</sys_id>
<sys_mod_count>0</sys_mod_count>
<sys_updated_by>robertoalvarezalonso</sys_updated_by>
<sys_updated_on>2024-10-12 18:39:31</sys_updated_on>
<update_set display_value=""/>
<update_source display_value=""/>
<updated/>
</sys_remote_update_set>
<sys_update_xml action="INSERT_OR_UPDATE">
<action>INSERT_OR_UPDATE</action>
<application display_value="Global">global</application>
<category>customer</category>
<comments/>
<name>sys_security_acl_68faaf6b834d16d012bac7a6feaad3bb</name>
<payload><![CDATA[<?xml version="1.0" encoding="UTF-8"?><record_update table="sys_security_acl"><sys_security_acl action="INSERT_OR_UPDATE"><active>true</active><admin_overrides>true</admin_overrides><advanced>false</advanced><condition table="ts_query">userDYNAMIC90d1921e5f510100a9ad2572f2b477fe^EQ<item endquery="false" field="user" goto="false" newquery="false" operator="DYNAMIC" or="false" value="90d1921e5f510100a9ad2572f2b477fe"/><item endquery="true" field="" goto="false" newquery="false" operator="=" or="false" value=""/></condition><description>Allow read for all fields in ts_query, if the ACL condition (userDYNAMIC90d1921e5f510100a9ad2572f2b477fe^EQ) evaluates to true.</description><local_or_existing>Local</local_or_existing><name>ts_query</name><operation display_value="read">read</operation><script/><security_attribute/><sys_class_name>sys_security_acl</sys_class_name><sys_created_by>robertoalvarezalonso</sys_created_by><sys_created_on>2024-10-11 07:46:50</sys_created_on><sys_id>68faaf6b834d16d012bac7a6feaad3bb</sys_id><sys_mod_count>0</sys_mod_count><sys_name>ts_query</sys_name><sys_package display_value="Global" source="global">global</sys_package><sys_policy/><sys_scope display_value="Global">global</sys_scope><sys_update_name>sys_security_acl_68faaf6b834d16d012bac7a6feaad3bb</sys_update_name><sys_updated_by>robertoalvarezalonso</sys_updated_by><sys_updated_on>2024-10-11 07:46:50</sys_updated_on><type display_value="record">record</type></sys_security_acl></record_update>]]></payload>
<payload_hash>1466928164</payload_hash>
<remote_update_set display_value="Allow access to user's search terms">7ee9438c8395121012bac7a6feaad37d</remote_update_set>
<replace_on_upgrade>false</replace_on_upgrade>
<sys_created_by>robertoalvarezalonso</sys_created_by>
<sys_created_on>2024-10-12 18:39:31</sys_created_on>
<sys_id>3ae9438c8395121012bac7a6feaad37e</sys_id>
<sys_mod_count>0</sys_mod_count>
<sys_recorded_at>1927a92f8ad0000001</sys_recorded_at>
<sys_updated_by>robertoalvarezalonso</sys_updated_by>
<sys_updated_on>2024-10-12 18:39:31</sys_updated_on>
<table>ts_query</table>
<target_name>ts_query</target_name>
<type>Access Control</type>
<update_domain>global</update_domain>
<update_guid>5ddc2b6f3c4d16d03d1c28921d9319a5</update_guid>
<update_guid_history>5ddc2b6f3c4d16d03d1c28921d9319a5:1466928164,64faaf6b294d16d09e400613b37076bd:-1235947773</update_guid_history>
<update_set display_value=""/>
<view/>
</sys_update_xml>
<sys_update_xml action="INSERT_OR_UPDATE">
<action>INSERT_OR_UPDATE</action>
<application display_value="Global">global</application>
<category>customer</category>
<comments/>
<name>sys_security_acl_51a90f4c8395121012bac7a6feaad3fe</name>
<payload><![CDATA[<?xml version="1.0" encoding="UTF-8"?><record_update table="sys_security_acl"><sys_security_acl action="INSERT_OR_UPDATE"><active>true</active><admin_overrides>true</admin_overrides><advanced>true</advanced><condition table="ts_query">userDYNAMIC90d1921e5f510100a9ad2572f2b477fe^EQ<item endquery="false" field="user" goto="false" newquery="false" operator="DYNAMIC" or="false" value="90d1921e5f510100a9ad2572f2b477fe"/><item endquery="true" field="" goto="false" newquery="false" operator="=" or="false" value=""/></condition><description>Allow read for all fields in ts_query, if the ACL condition (userDYNAMIC90d1921e5f510100a9ad2572f2b477fe^EQ) evaluates to true.</description><local_or_existing>Local</local_or_existing><name>ts_query</name><operation display_value="delete">delete</operation><script/><security_attribute/><sys_class_name>sys_security_acl</sys_class_name><sys_created_by>robertoalvarezalonso</sys_created_by><sys_created_on>2024-10-12 18:38:19</sys_created_on><sys_id>51a90f4c8395121012bac7a6feaad3fe</sys_id><sys_mod_count>0</sys_mod_count><sys_name>ts_query</sys_name><sys_package display_value="Global" source="global">global</sys_package><sys_policy/><sys_scope display_value="Global">global</sys_scope><sys_update_name>sys_security_acl_51a90f4c8395121012bac7a6feaad3fe</sys_update_name><sys_updated_by>robertoalvarezalonso</sys_updated_by><sys_updated_on>2024-10-12 18:38:19</sys_updated_on><type display_value="record">record</type></sys_security_acl></record_update>]]></payload>
<payload_hash>-99972179</payload_hash>
<remote_update_set display_value="Allow access to user's search terms">7ee9438c8395121012bac7a6feaad37d</remote_update_set>
<replace_on_upgrade>false</replace_on_upgrade>
<sys_created_by>robertoalvarezalonso</sys_created_by>
<sys_created_on>2024-10-12 18:39:31</sys_created_on>
<sys_id>72e9438c8395121012bac7a6feaad37e</sys_id>
<sys_mod_count>0</sys_mod_count>
<sys_recorded_at>19282063ee20000001</sys_recorded_at>
<sys_updated_by>robertoalvarezalonso</sys_updated_by>
<sys_updated_on>2024-10-12 18:39:31</sys_updated_on>
<table>ts_query</table>
<target_name>ts_query</target_name>
<type>Access Control</type>
<update_domain>global</update_domain>
<update_guid>69a94f4c559512100053fafb58d65802</update_guid>
<update_guid_history>69a94f4c559512100053fafb58d65802:-99972179</update_guid_history>
<update_set display_value=""/>
<view/>
</sys_update_xml>
<sys_update_xml action="INSERT_OR_UPDATE">
<action>INSERT_OR_UPDATE</action>
<application display_value="Global">global</application>
<category>customer</category>
<comments/>
<name>sys_security_acl_ef7a6f6b834d16d012bac7a6feaad3f6</name>
<payload><![CDATA[<?xml version="1.0" encoding="UTF-8"?><record_update table="sys_security_acl"><sys_security_acl action="INSERT_OR_UPDATE"><active>true</active><admin_overrides>true</admin_overrides><advanced>false</advanced><condition table="ts_query.*">userDYNAMIC90d1921e5f510100a9ad2572f2b477fe^EQ<item endquery="true" field="" goto="false" newquery="false" operator="=" or="false" value=""/></condition><description>Allow read for all fields in ts_query, if the ACL condition (userDYNAMIC90d1921e5f510100a9ad2572f2b477fe^EQ) evaluates to true.</description><local_or_existing>Local</local_or_existing><name>ts_query.*</name><operation display_value="read">read</operation><script/><security_attribute/><sys_class_name>sys_security_acl</sys_class_name><sys_created_by>robertoalvarezalonso</sys_created_by><sys_created_on>2024-10-11 07:46:13</sys_created_on><sys_id>ef7a6f6b834d16d012bac7a6feaad3f6</sys_id><sys_mod_count>1</sys_mod_count><sys_name>ts_query.*</sys_name><sys_package display_value="Global" source="global">global</sys_package><sys_policy/><sys_scope display_value="Global">global</sys_scope><sys_update_name>sys_security_acl_ef7a6f6b834d16d012bac7a6feaad3f6</sys_update_name><sys_updated_by>robertoalvarezalonso</sys_updated_by><sys_updated_on>2024-10-11 07:46:35</sys_updated_on><type display_value="record">record</type></sys_security_acl></record_update>]]></payload>
<payload_hash>-38913224</payload_hash>
<remote_update_set display_value="Allow access to user's search terms">7ee9438c8395121012bac7a6feaad37d</remote_update_set>
<replace_on_upgrade>false</replace_on_upgrade>
<sys_created_by>robertoalvarezalonso</sys_created_by>
<sys_created_on>2024-10-12 18:39:31</sys_created_on>
<sys_id>fae9438c8395121012bac7a6feaad37e</sys_id>
<sys_mod_count>0</sys_mod_count>
<sys_recorded_at>1927a9304a40000001</sys_recorded_at>
<sys_updated_by>robertoalvarezalonso</sys_updated_by>
<sys_updated_on>2024-10-12 18:39:31</sys_updated_on>
<table>ts_query.*</table>
<target_name>ts_query.*</target_name>
<type>Access Control</type>
<update_domain>global</update_domain>
<update_guid>cadca36f164d16d06ae0b9f0ff8a7fd8</update_guid>
<update_guid_history>cadca36f164d16d06ae0b9f0ff8a7fd8:-38913224,aceaa7abac4d16d0dd013c0d32080342:990041495,9bca27ab304d16d02f63d850c1834a3a:-400606344</update_guid_history>
<update_set display_value=""/>
<view/>
</sys_update_xml>
</unload>
Binary file added extensions/servicenow/metadata/servicenow-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/servicenow/metadata/servicenow-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added extensions/servicenow/metadata/servicenow-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 584cc90

Please sign in to comment.