-
Notifications
You must be signed in to change notification settings - Fork 6
Add TeamDynamix v1 for Education ITSM #110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
ea54289
Add TeamDynamix plugin (v1)
shawn149 eecaab1
Remove defaultTimeframe from TeamDynamix dataStreams
shawn149 3e8bcf4
Cap configuration item results; update docs
shawn149 e6cf344
Remove custom-attribute columns from TeamDynamix
shawn149 cce6b05
Infer sandbox web app for TeamDynamix links
shawn149 911aee1
Guard TeamDynamix data maps with Array.isArray
shawn149 64b857c
Set defaultTimeframe for TeamDynamix streams
shawn149 fa503ef
Make StatusClass & Component numeric; add Component format
shawn149 4af7fb1
Bump TeamDynamix plugin to v1.0.1
shawn149 7a6eba6
Clarify 'Ignore certificate errors' guidance
shawn149 cd9edb5
Fix TeamDynamix URL validation regex
shawn149 3fcd9ca
Remove 'Departments' from account display names
shawn149 e35300d
Remove PNG icon and update SVG
shawn149 35a66f7
Update TeamDynamix plugin author to community
shawn149 53e384e
Stop internal request pacing for TeamDynamix
shawn149 65fb609
Remove intro markdown from TeamDynamix UI
shawn149 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| { | ||
| "steps": [ | ||
| { | ||
| "displayName": "Authenticate", | ||
| "dataStream": { "name": "currentUser" }, | ||
| "required": true, | ||
| "error": "Could not sign in to TeamDynamix. Check the Web API address ends in /TDWebApi, that the BEID and Web Services Key match the values on the organization detail page in TDAdmin, and that the admin service account is set to Active.", | ||
| "success": "Signed in to TeamDynamix." | ||
| }, | ||
| { | ||
| "displayName": "Find applications", | ||
| "dataStream": { | ||
| "name": "applications", | ||
| "config": { "errorOnEmptyResults": true } | ||
| }, | ||
| "required": true, | ||
| "error": "Signed in, but no TeamDynamix applications are visible to this service account. Tickets, assets and configuration items are all read per application, so at least one is required.", | ||
| "success": "Applications found." | ||
| }, | ||
| { | ||
| "displayName": "Read organization data", | ||
| "dataStream": { "name": "accounts" }, | ||
| "required": false, | ||
| "error": "Signed in, but accounts and departments could not be read. Dashboards will still work, but department breakdowns will be empty.", | ||
| "success": "Accounts and departments accessible." | ||
| } | ||
| ] | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| [ | ||
| { | ||
| "name": "TeamDynamix Ticketing App", | ||
| "sourceType": "TeamDynamix Ticketing App", | ||
| "icon": "headset", | ||
| "singular": "Ticketing Application", | ||
| "plural": "Ticketing Applications" | ||
| }, | ||
| { | ||
| "name": "TeamDynamix Asset App", | ||
| "sourceType": "TeamDynamix Asset App", | ||
| "icon": "boxes-stacked", | ||
| "singular": "Asset Application", | ||
| "plural": "Asset Applications" | ||
| }, | ||
| { | ||
| "name": "TeamDynamix Application", | ||
| "sourceType": "TeamDynamix Application", | ||
| "icon": "grid-2", | ||
| "singular": "Application", | ||
| "plural": "Applications" | ||
| }, | ||
| { | ||
| "name": "TeamDynamix Account", | ||
| "sourceType": "TeamDynamix Account", | ||
| "icon": "building", | ||
| "singular": "Account", | ||
| "plural": "Accounts" | ||
| }, | ||
| { | ||
| "name": "TeamDynamix Location", | ||
| "sourceType": "TeamDynamix Location", | ||
| "icon": "location-dot", | ||
| "singular": "Location", | ||
| "plural": "Locations" | ||
| }, | ||
| { | ||
| "name": "TeamDynamix Group", | ||
| "sourceType": "TeamDynamix Group", | ||
| "icon": "users", | ||
| "singular": "Group", | ||
| "plural": "Groups" | ||
| }, | ||
| { | ||
| "name": "TeamDynamix Asset", | ||
| "sourceType": "TeamDynamix Asset", | ||
| "icon": "laptop", | ||
| "singular": "Asset", | ||
| "plural": "Assets" | ||
| }, | ||
| { | ||
| "name": "TeamDynamix Configuration Item", | ||
| "sourceType": "TeamDynamix Configuration Item", | ||
| "icon": "sitemap", | ||
| "singular": "Configuration Item", | ||
| "plural": "Configuration Items" | ||
| } | ||
| ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| { | ||
| "name": "accounts", | ||
| "displayName": "Accounts", | ||
| "description": "Active accounts and departments, one row per account", | ||
| "tags": ["Organization"], | ||
| "baseDataSourceName": "httpRequestUnscoped", | ||
| "config": { | ||
| "httpMethod": "get", | ||
| "endpointPath": "api/accounts", | ||
| "paging": { "mode": "none" }, | ||
| "postRequestScript": "accounts.js", | ||
| "errorHandling": { | ||
| "type": "script", | ||
| "script": "errorHandling/rateLimit.js" | ||
| } | ||
| }, | ||
| "matches": "none", | ||
| "metadata": [ | ||
| { "name": "name", "displayName": "Name", "shape": "string", "role": "label" }, | ||
| { "name": "accountId", "displayName": "Account ID", "shape": "string", "role": "id" }, | ||
| { "name": "code", "displayName": "Code", "shape": "string" }, | ||
| { "name": "managerName", "displayName": "Manager", "shape": "string" }, | ||
| { "name": "parentName", "displayName": "Parent", "shape": "string" }, | ||
| { "name": "industryName", "displayName": "Industry", "shape": "string" }, | ||
| { "name": "city", "displayName": "City", "shape": "string" }, | ||
| { "name": "stateName", "displayName": "State", "shape": "string" }, | ||
| { "name": "country", "displayName": "Country", "shape": "string" }, | ||
| { "name": "createdDate", "displayName": "Created", "shape": "date" } | ||
| ], | ||
| "timeframes": false, | ||
| "visibility": { "type": "hidden" } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| { | ||
| "name": "applications", | ||
| "displayName": "Applications", | ||
| "description": "TeamDynamix applications available to the service account, one row per application", | ||
| "tags": ["Organization"], | ||
| "baseDataSourceName": "httpRequestUnscoped", | ||
| "config": { | ||
| "httpMethod": "get", | ||
| "endpointPath": "api/applications", | ||
| "paging": { "mode": "none" }, | ||
| "postRequestScript": "applications.js", | ||
| "errorHandling": { | ||
| "type": "script", | ||
| "script": "errorHandling/rateLimit.js" | ||
| } | ||
| }, | ||
| "matches": "none", | ||
| "metadata": [ | ||
| { "name": "name", "displayName": "Name", "shape": "string", "role": "label" }, | ||
| { "name": "appId", "displayName": "App ID", "shape": "string", "role": "id" }, | ||
| { "name": "appType", "displayName": "Type", "shape": "string" }, | ||
| { "name": "appClass", "displayName": "Class", "shape": "string" }, | ||
| { "name": "description", "displayName": "Description", "shape": "string" }, | ||
| { "name": "sourceType", "displayName": "Object Type", "shape": "string", "visible": false } | ||
| ], | ||
| "timeframes": false, | ||
| "visibility": { "type": "hidden" } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,75 @@ | ||
| { | ||
| "name": "assets", | ||
| "displayName": "Assets", | ||
| "description": "Assets in an asset application, one row per asset, with status, owner, location and purchase detail", | ||
| "tags": ["Assets", "Inventory"], | ||
| "baseDataSourceName": "httpRequestScopedSingle", | ||
| "config": { | ||
| "httpMethod": "post", | ||
| "endpointPath": "api/{{object.rawId}}/assets/search", | ||
| "postBody": { | ||
| "MaxResults": "{{maxResults || dataSource.maxRecords || 2000}}", | ||
| "IsInService": "{{typeof inService === 'undefined' || inService === '' || inService === 'all' ? null : inService === 'inService'}}" | ||
| }, | ||
| "paging": { "mode": "none" }, | ||
| "postRequestScript": "assets.js", | ||
| "errorHandling": { | ||
| "type": "script", | ||
| "script": "errorHandling/rateLimit.js" | ||
| } | ||
| }, | ||
| "matches": { | ||
| "sourceType": { "type": "oneOf", "values": ["TeamDynamix Asset App"] } | ||
| }, | ||
| "ui": [ | ||
| { | ||
| "type": "switch", | ||
| "name": "inService", | ||
| "label": "Service state", | ||
| "defaultValue": "all", | ||
| "options": [ | ||
| { "value": "all", "label": "All" }, | ||
| { "value": "inService", "label": "In service" }, | ||
| { "value": "outOfService", "label": "Out of service" } | ||
| ] | ||
| }, | ||
| { | ||
| "type": "number", | ||
| "name": "maxResults", | ||
| "label": "Maximum assets", | ||
| "help": "The TeamDynamix asset search returns a single unpaged result set, so this is a hard ceiling on how many assets the tile can see.", | ||
| "validation": { "min": 1, "max": 10000, "valueAsNumber": true } | ||
| } | ||
| ], | ||
| "metadata": [ | ||
| { "name": "name", "displayName": "Asset", "shape": "string", "role": "label" }, | ||
| { "name": "sourceId", "displayName": "Source ID", "shape": "string", "role": "id", "visible": false }, | ||
| { "name": "assetId", "displayName": "Asset ID", "shape": "string", "visible": false }, | ||
| { "name": "link", "displayName": "Link", "shape": ["url", { "label": "Open in TeamDynamix" }], "role": "link" }, | ||
| { "name": "statusName", "displayName": "Status", "shape": "string" }, | ||
| { "name": "tag", "displayName": "Tag", "shape": "string" }, | ||
| { "name": "serialNumber", "displayName": "Serial Number", "shape": "string" }, | ||
| { "name": "manufacturerName", "displayName": "Manufacturer", "shape": "string" }, | ||
| { "name": "productModelName", "displayName": "Model", "shape": "string" }, | ||
| { "name": "supplierName", "displayName": "Supplier", "shape": "string", "visible": false }, | ||
| { "name": "locationName", "displayName": "Location", "shape": "string" }, | ||
| { "name": "locationRoomName", "displayName": "Room", "shape": "string", "visible": false }, | ||
| { "name": "owningCustomerName", "displayName": "Owner", "shape": "string" }, | ||
| { "name": "owningDepartmentName", "displayName": "Owning Department", "shape": "string" }, | ||
| { "name": "requestingCustomerName", "displayName": "Requestor", "shape": "string", "visible": false }, | ||
| { "name": "purchaseCost", "displayName": "Purchase Cost", "shape": ["number", { "decimalPlaces": 2, "thousandsSeparator": true }] }, | ||
| { "name": "acquisitionDate", "displayName": "Acquired", "shape": "date" }, | ||
| { "name": "expectedReplacementDate", "displayName": "Expected Replacement", "shape": "date" }, | ||
| { "name": "createdDate", "displayName": "Created", "shape": "date", "visible": false }, | ||
| { "name": "modifiedDate", "displayName": "Modified", "shape": "date" }, | ||
| { "name": "parentName", "displayName": "Parent Asset", "shape": "string", "visible": false }, | ||
| { "name": "externalId", "displayName": "External ID", "shape": "string", "visible": false }, | ||
| { "name": "configurationItemId", "displayName": "Configuration Item ID", "shape": "string", "visible": false }, | ||
| { "name": "appId", "displayName": "App ID", "shape": "string", "visible": false }, | ||
| { "name": "sourceType", "displayName": "Object Type", "shape": "string", "visible": false } | ||
| ], | ||
| "defaultShaping": { | ||
| "sort": { "by": [["name", "asc"]] } | ||
| }, | ||
| "timeframes": false | ||
| } |
61 changes: 61 additions & 0 deletions
61
plugins/TeamDynamix/v1/dataStreams/configurationItems.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| { | ||
| "name": "configurationItems", | ||
| "displayName": "Configuration Items", | ||
| "description": "Configuration items in the CMDB of an asset application, one row per item", | ||
| "tags": ["Configuration Items", "Inventory"], | ||
| "baseDataSourceName": "httpRequestScopedSingle", | ||
| "config": { | ||
| "httpMethod": "post", | ||
| "endpointPath": "api/{{object.rawId}}/cmdb/search", | ||
| "postBody": { | ||
| "IsActive": "{{typeof activeState === 'undefined' || activeState === '' || activeState === 'all' ? null : activeState === 'active'}}" | ||
| }, | ||
| "paging": { "mode": "none" }, | ||
| "postRequestScript": "configurationItems.js", | ||
| "errorHandling": { | ||
| "type": "script", | ||
| "script": "errorHandling/rateLimit.js" | ||
| } | ||
| }, | ||
| "matches": { | ||
| "sourceType": { "type": "oneOf", "values": ["TeamDynamix Asset App"] } | ||
| }, | ||
| "ui": [ | ||
| { | ||
| "type": "switch", | ||
| "name": "activeState", | ||
| "label": "Active state", | ||
| "defaultValue": "active", | ||
| "options": [ | ||
| { "value": "all", "label": "All" }, | ||
| { "value": "active", "label": "Active" }, | ||
| { "value": "inactive", "label": "Inactive" } | ||
| ] | ||
| } | ||
| ], | ||
| "metadata": [ | ||
| { "name": "name", "displayName": "Configuration Item", "shape": "string", "role": "label" }, | ||
| { "name": "sourceId", "displayName": "Source ID", "shape": "string", "role": "id", "visible": false }, | ||
| { "name": "configurationItemId", "displayName": "CI ID", "shape": "string", "visible": false }, | ||
| { "name": "link", "displayName": "Link", "shape": ["url", { "label": "Open in TeamDynamix" }], "role": "link" }, | ||
| { "name": "typeName", "displayName": "Type", "shape": "string" }, | ||
| { "name": "isActive", "displayName": "Active", "shape": "boolean" }, | ||
| { "name": "ownerFullName", "displayName": "Owner", "shape": "string" }, | ||
| { "name": "owningDepartmentName", "displayName": "Owning Department", "shape": "string" }, | ||
| { "name": "owningGroupName", "displayName": "Owning Group", "shape": "string" }, | ||
| { "name": "locationName", "displayName": "Location", "shape": "string" }, | ||
| { "name": "maintenanceScheduleName", "displayName": "Maintenance Window", "shape": "string" }, | ||
| { "name": "backingItemType", "displayName": "Backing Item Type", "shape": "string", "visible": false }, | ||
| { "name": "isSystemMaintained", "displayName": "System Maintained", "shape": "boolean", "visible": false }, | ||
| { "name": "externalSourceName", "displayName": "External Source", "shape": "string", "visible": false }, | ||
| { "name": "externalId", "displayName": "External ID", "shape": "string", "visible": false }, | ||
| { "name": "createdDate", "displayName": "Created", "shape": "date", "visible": false }, | ||
| { "name": "modifiedDate", "displayName": "Modified", "shape": "date" }, | ||
| { "name": "appId", "displayName": "App ID", "shape": "string", "visible": false }, | ||
| { "name": "sourceType", "displayName": "Object Type", "shape": "string", "visible": false } | ||
| ], | ||
| "defaultShaping": { | ||
| "sort": { "by": [["name", "asc"]] } | ||
| }, | ||
| "timeframes": false | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| { | ||
| "name": "currentUser", | ||
| "displayName": "Current User", | ||
| "description": "Details of the TeamDynamix service account the connection is using", | ||
| "tags": ["User"], | ||
| "baseDataSourceName": "httpRequestUnscoped", | ||
| "config": { | ||
| "httpMethod": "get", | ||
| "endpointPath": "api/auth/getuser", | ||
| "paging": { "mode": "none" }, | ||
| "errorHandling": { | ||
| "type": "script", | ||
| "script": "errorHandling/rateLimit.js" | ||
| } | ||
| }, | ||
| "matches": "none", | ||
| "metadata": [ | ||
| { "name": "FullName", "displayName": "Name", "shape": "string", "role": "label" }, | ||
| { "name": "UserName", "displayName": "Username", "shape": "string" }, | ||
| { "name": "PrimaryEmail", "displayName": "Email", "shape": "string" }, | ||
| { "name": "IsActive", "displayName": "Active", "shape": "boolean" }, | ||
| { "name": "BEID", "displayName": "BEID", "shape": "string" }, | ||
| { "name": "UID", "displayName": "UID", "shape": "string", "visible": false } | ||
| ], | ||
| "timeframes": false, | ||
| "visibility": { "type": "hidden" } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| { | ||
| "name": "groups", | ||
| "displayName": "Groups", | ||
| "description": "Active groups used to assign and route work, one row per group", | ||
| "tags": ["Organization"], | ||
| "baseDataSourceName": "httpRequestUnscoped", | ||
| "config": { | ||
| "httpMethod": "post", | ||
| "endpointPath": "api/groups/search", | ||
| "postBody": { | ||
| "IsActive": true | ||
| }, | ||
| "paging": { "mode": "none" }, | ||
| "errorHandling": { | ||
| "type": "script", | ||
| "script": "errorHandling/rateLimit.js" | ||
| } | ||
| }, | ||
| "matches": "none", | ||
| "metadata": [ | ||
| { "name": "Name", "displayName": "Group", "shape": "string", "role": "label" }, | ||
| { "name": "ID", "displayName": "Group ID", "shape": "string", "role": "id" }, | ||
| { "name": "Description", "displayName": "Description", "shape": "string" }, | ||
| { "name": "ExternalID", "displayName": "External ID", "shape": "string" }, | ||
| { "name": "CreatedDate", "displayName": "Created", "shape": "date" }, | ||
| { "name": "ModifiedDate", "displayName": "Modified", "shape": "date" } | ||
| ], | ||
| "timeframes": false, | ||
| "visibility": { "type": "hidden" } | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.