Skip to content

Commit 6e81309

Browse files
authored
Merge pull request #13 from splunk/feature-new-generic-input
Feature | Generic Input
2 parents 35777c4 + a7782f3 commit 6e81309

File tree

13 files changed

+526
-13
lines changed

13 files changed

+526
-13
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file.
33

44
The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
55

6+
## [v1.3.0] - 2025-10-23
7+
8+
### Added
9+
10+
- Added a new generic input that allows retrieving data from custom endpoints.
11+
- Added a new field to the account configuration to indicate whether it is a Gov account.
12+
13+
### Changed
14+
15+
- Minor updates to globalConfig.json – bumped schemaVersion to 0.0.10
16+
617
## [v1.2.0] - 2025-09-30
718

819
### Added

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Here are the endpoints and their mapping soucetypes.
1717
| Webex Meeting Qualities | [Meeting Qualities](https://developer.webex.com/docs/api/v1/meeting-qualities/get-meeting-qualities) | cisco:webex:meeting:qualities |
1818
| Webex Detailed Call History | [Detailed Call History](https://developer.webex.com/docs/api/v1/reports-detailed-call-history/get-detailed-call-history) | cisco:webex:call:detailed_history |
1919
| Webex Security Audit Events | [Security Audit Events](https://developer.webex.com/admin/docs/api/v1/security-audit-events/list-security-audit-events) | cisco:webex:security:audit:events |
20+
| Webex Generic Endpoint | [Webex API](https://developer.webex.com/messaging/docs/basics) | cisco:webex:<**API Endpoint**> |
2021

2122
## Versions Supported
2223

docs/Configuration/index.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,39 @@ Open the Web UI for the Heavy Forwarder (or IDM). Access the Add-on from the lis
4242
- **Webex API Base Endpoint**: Enter your Webex API Base Endpoint. The default one is `webexapis.com`.
4343
- **Client ID**: Enter the `Client ID` that you obtained above here.
4444
- **Client Secret**: Enter the `Client Secret` that you obtained above here.
45-
- **Redirect URI**: The Redirect URI will auto show up.
45+
- **Redirect URI**: The Redirect URI will auto show up.
46+
- **Gov Account**: Select this option if you are using a Webex Gov Account. Please refer to this [link](https://developer-usgov.webex.com/docs/api/guides/api-support) to read about the FedRAMP API limitations.
4647
- Click on the `Add` button.
4748

4849

4950
#### 2. Create Input
5051

52+
**Webex Generic Endpoint**
53+
54+
The **Webex Generic Endpoint** provides the flexibility to create a custom input using the Webex API endpoint of your choice. If you encounter scenarios where the predefined input options do not meet your requirements, you can use this option to enable data ingestion from a different source.
55+
56+
Keep in mind that the endpoint you want to use may require special permissions, roles, and/or scopes. Please refer to the API documentation to see the requirements needed to enable data ingestion for the endpoint.
57+
58+
Enter a `Start Time` whenever it is supported by the endpoint to help avoid duplicates. If an `End Time` is specified, data will be fetched up to that time; otherwise, data will be fetched up to the current time. If a `Start` or `Created` time is present in the response, it will be saved as a checkpoint and used as the `Start Time` for the next run.
59+
60+
Some endpoints require specific query parameters to function correctly. Users can add these parameters using the `Query Params` field. The input also supports path parameters in the URL, which should be included in the `API Endpoint` field.
61+
62+
- Click on the `Inputs` button on the top left corner.
63+
- Click on `Create New Input` button on the top right corner.
64+
- Click on `Webex API Input`
65+
- Enter the following details in the pop-up box:
66+
- **Name** (_required_): Unique name for the data input.
67+
- **Interval** (_required_): Time interval of input in seconds.
68+
- **Index** (_required_): Index for storing data.
69+
- **Global Account** (_required_): Select the account created during Configuration.
70+
- **API Endpoint** (_required_): The Webex API endpoint. It is not necessary to include a leading slash as for example: `device`, or `devices/12345678`.
71+
- **Webex Base API URL** (_required_): Enter the base URL for the endpoint. Most Webex APIs use `webexapis.com`, but some may require a different base URL. For example, endpoints that require the `analytics:read_all` scope often use `analytics.webexapis.com`. Always refer to the endpoint documentation to confirm the correct base URL.
72+
- **Start Time** (_optional_): Inclusive start date and time in the format `YYYY-MM-DDTHH:MM:SSZ`, e.g. `2023-01-01T00:00:00Z`. Be aware of the endpoint limitations and valid ranges.
73+
- **End Time** (_optional_): End date and time in the format `YYYY-Mon-DDTHH:MM:SSZ`, e.g. `2023-02-01T00:00:00Z`. Leave blank if an ongoing ingestion mode is needed. Be aware of the endpoint limitations and valid ranges.
74+
- **Query Params** (_optional_): Include any query parameters for the endpoint. For multiple parameters, enter them as comma-separated values (e.g. `locationId=0000000, messageId=0000000, teamId=0000000`).
75+
- Click on the `Add` green button on the bottom right of the pop-up box.
76+
77+
5178
**Webex Scheduled Meetings Input**
5279

5380
The **Webex Scheduled Meetings** input is used to fetch the active scheduled meetings from [Meetings](https://developer.webex.com/docs/api/v1/meetings/list-meetings) endpoint. It allows users to retrieve account-wide scheduled meetings of all users in your organization.

globalConfig.json

Lines changed: 138 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
"meta": {
33
"name": "ta_cisco_webex_add_on_for_splunk",
44
"displayName": "Cisco Webex Add-on for Splunk",
5-
"version": "1.2.0",
5+
"version": "1.3.0",
66
"restRoot": "ta_cisco_webex_add_on_for_splunk",
7-
"schemaVersion": "0.0.9",
7+
"schemaVersion": "0.0.10",
88
"supportedThemes": [
99
"light",
1010
"dark"
@@ -388,6 +388,21 @@
388388
"access_token_endpoint": "/v1/access_token",
389389
"oauth_state_enabled": false
390390
}
391+
},
392+
{
393+
"type": "checkbox",
394+
"label": "Gov Account",
395+
"help": "Check this option if you are using a Gov Account.",
396+
"field": "is_gov_account"
397+
},
398+
{
399+
"field": "gov_api_reference_link",
400+
"label": "",
401+
"type": "helpLink",
402+
"options": {
403+
"text": "Click here to learn more about the FedRAMP API limitations.",
404+
"link": "https://developer-usgov.webex.com/docs/api/guides/api-support"
405+
}
391406
}
392407
]
393408
},
@@ -555,6 +570,127 @@
555570
]
556571
},
557572
"services": [
573+
{
574+
"template": "input_with_helper",
575+
"name": "webex_generic_endpoint",
576+
"title": "Webex Generic Endpoint",
577+
"entity": [
578+
{
579+
"field": "name",
580+
"label": "Name",
581+
"type": "text",
582+
"help": "Enter a unique name for the data input",
583+
"required": true,
584+
"validators": [
585+
{
586+
"type": "regex",
587+
"pattern": "^[a-zA-Z]\\w*$",
588+
"errorMsg": "Input Name must start with a letter and followed by alphabetic letters, digits or underscores."
589+
},
590+
{
591+
"type": "string",
592+
"minLength": 1,
593+
"maxLength": 100,
594+
"errorMsg": "Length of input name should be between 1 and 100"
595+
}
596+
]
597+
},
598+
{
599+
"type": "interval",
600+
"field": "interval",
601+
"label": "Interval",
602+
"help": "Time interval of input in seconds",
603+
"required": true
604+
},
605+
{
606+
"field": "index",
607+
"label": "Index",
608+
"type": "singleSelect",
609+
"defaultValue": "default",
610+
"options": {
611+
"endpointUrl": "data/indexes",
612+
"createSearchChoice": true,
613+
"denyList": "^_.*$"
614+
},
615+
"required": true,
616+
"validators": [
617+
{
618+
"type": "string",
619+
"minLength": 1,
620+
"maxLength": 80,
621+
"errorMsg": "Length of index name should be between 1 and 80."
622+
}
623+
]
624+
},
625+
{
626+
"field": "global_account",
627+
"label": "Global Account",
628+
"help": "",
629+
"required": true,
630+
"type": "singleSelect",
631+
"options": {
632+
"referenceName": "account"
633+
}
634+
},
635+
{
636+
"field": "webex_endpoint",
637+
"label": "API Endpoint",
638+
"help": "The endpoint of the Webex API. Example: devices, devices/12345678, messages",
639+
"required": true,
640+
"type": "text",
641+
"validators": [
642+
{
643+
"type": "regex",
644+
"pattern": "^(?!/).*",
645+
"errorMsg": "Do not include a leading slash (/) before the endpoint."
646+
}
647+
]
648+
},
649+
{
650+
"field": "webex_base_url",
651+
"label": "Webex Base API URL",
652+
"type": "text",
653+
"defaultValue": "webexapis.com",
654+
"required": true,
655+
"help": "Enter the base URL for the endpoint (usually webexapis.com). If the endpoint requires the analytics:read_all scope, you may need to use analytics.webexapis.com. Please check the endpoint documentation to confirm which to use."
656+
},
657+
{
658+
"field": "start_time",
659+
"label": "Start Time",
660+
"help": "If required by the endpoint, add a start date and time in the format YYYY-MM-DDTHH:MM:SSZ (inclusive). It is recommended to set the start time to the current time.",
661+
"required": false,
662+
"type": "text",
663+
"validators": [
664+
{
665+
"type": "regex",
666+
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$",
667+
"errorMsg": "Start time must be in the format YYYY-MM-DDTHH:MM:SSZ (example:2023-01-01T00:00:00Z)"
668+
}
669+
]
670+
},
671+
{
672+
"field": "end_time",
673+
"label": "End Time",
674+
"help": "End date and time in the format YYYY-MM-DDTHH:MM:SSZ.(Optional). End Time must be after the Start Time.",
675+
"required": false,
676+
"type": "text",
677+
"validators": [
678+
{
679+
"type": "regex",
680+
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$",
681+
"errorMsg": "End time must be in the format YYYY-MM-DDTHH:MM:SSZ (example:2033-01-01T00:00:00Z)"
682+
}
683+
]
684+
},
685+
{
686+
"field": "query_params",
687+
"label": "Query Params",
688+
"help": "Add as comma-separated values additional query params to be included in the call of the API, each param will be concatenated to the URL you previously entered. Example: locationId=0000000, messageId=0000000, teamId=0000000.",
689+
"required": false,
690+
"type": "text"
691+
}
692+
]
693+
},
558694
{
559695
"template": "input_with_helper",
560696
"name": "webex_meetings",

package/app.manifest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"id": {
66
"group": null,
77
"name": "ta_cisco_webex_add_on_for_splunk",
8-
"version": "1.2.0"
8+
"version": "1.3.0"
99
},
1010
"author": [
1111
{

0 commit comments

Comments
 (0)