Capability library / Application package

Splunk package v1.0.0

Splunk: read saved searches, indexes and search jobs, and run ad-hoc SPL searches within a separately restricted role.

Review state: Reviewed · Distributable: yes, digest matches the release manifest

This page describes AAES Govern’s controls. AAES Operate has private-work permissions, operational reviews and recorded-spend limits; it does not include Govern. About AAES Govern

Before you enable this package

The endpoint host 'splunk-instance.invalid' is a reserved .invalid placeholder that fails closed until you substitute the real host and management port in both the endpoint URLs and the egress allowlist.

Read each action's effects and exclusions below. Before installation, also read the complete package requirements, including credential issuance, scope, expiry, and provider permissions. These are deployment prerequisites, not capabilities this package supplies.

Capabilities (4)

Each capability below is one registered operation. The complete package JSON includes its exact network destination allowlist. The repository stores it at packs/splunk.json and embeds a copy in the release binary.

Risk tiers. R0 is the minimum for reads. R2 is the minimum for write, create, update, execute, and invoke. R3 is the minimum for delete, send, pay, deploy, approve, share, and transfer. Operators can raise these levels. A minimum tier does not measure the operation's business or confidentiality risk.

Field guide. Endpoint is the service address and request method. Connector is the adapter that makes the call. Custody describes how the credential is held; the credential reference identifies the value to resolve. Data class sets handling requirements: pii means personal data, financial means financial records, and internal means internal organizational data.

splunk.saved_searches.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://splunk-instance.invalid:8089/services/saved/searches
Connector
http
Custody
customer_vault
Credential ref
secret-ref-splunk-auth-token
Data class
internal

Read saved searches.

List saved search configurations: names, schedules and the SPL text itself, which reveals detection logic and internal data layout. The registered path covers the collection read only — single saved-search reads, creation, modification, deletion and dispatch are not registered by this pack.

splunk.indexes.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://splunk-instance.invalid:8089/services/data/indexes
Connector
http
Custody
customer_vault
Credential ref
secret-ref-splunk-auth-token
Data class
internal

Read indexes.

List data indexes: names, storage paths, sizes, event counts and retention settings, which reveal what the deployment collects and keeps. The registered path covers the collection read only — single-index reads and index creation or modification (POST data/indexes) are not registered by this pack.

splunk.search.jobs.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://splunk-instance.invalid:8089/services/search/jobs
Connector
http
Custody
customer_vault
Credential ref
secret-ref-splunk-auth-token
Data class
internal

Read search jobs.

List current search jobs: owners, dispatch state, disk usage and the query text of each job, which reveals who searches for what. The registered path covers the collection read only — single-job reads (GET /services/search/jobs/{search_id}), job results and job control are not registered by this pack.

splunk.search.jobs.create v1.0.0R2

Kind
tool
Actions
create, execute
Endpoint
POST https://splunk-instance.invalid:8089/services/search/jobs
Connector
http
Custody
customer_vault
Credential ref
secret-ref-splunk-auth-token
Data class
pii

Create search jobs.

Create and run an ad-hoc search job using caller-supplied SPL in the search parameter. POST /services/search/jobs executes the query; it is registered as create and execute at R2. Reading results through GET /services/search/jobs/{search_id}/results is a separate operation excluded from this package.

The package does not restrict SPL or the data it can reach. Enforce those limits through the Splunk role behind the token and deployment policy. Before enabling, demonstrate that the role lacks destructive, writing, and notifying capabilities: delete_by_keyword, output_file, run_collect, run_mcollect, run_sendalert, run_custom_command, schedule_search, and edit_*.

The default data class is pii because indexed events often contain IP addresses, usernames, or email text. Lower it only when the accessible indexes contain no personal data; raise it for regulated data.

Credential reference

The credential field names a reference rather than containing credential material. Packs are designed not to contain secrets; the format checks cover only known credential formats and cannot prove that arbitrary text contains no secrets. Installing a package registers its capabilities. Configure the provider credentials, endpoints, and network access, then test the integration in your environment before enabling it.

Reference
secret-ref-splunk-auth-token
Custody
customer_vault
Injection
header (Authorization)

Configure the value and injection format specified in the package. Assign responsibility for credential rotation and revocation, restrict provider permissions, and keep credential material out of logs and responses.

Complete credential requirements

A Splunk platform authentication token (JWT) for the customer's own instance, held in the client's own secret manager. The stored material must be the complete Authorization header value: the scheme 'Bearer', one separating space, then the token — 'Bearer <token>' (Splunk also accepts the 'Splunk' scheme; this pack standardizes on the documented Bearer form). The token authenticates with the full role and capabilities of the Splunk user it was issued to: issue it to a dedicated least-privilege service role whose index restrictions and capabilities cover exactly these reads and, where enabled, ad-hoc search without the destructive, writing or notifying capabilities enumerated in the pack notes (delete_by_keyword, output_file, run_collect, run_mcollect, run_sendalert, run_custom_command, schedule_search).

Tokens carry a not-before and an expiry chosen at creation, and Splunk's documentation states expired tokens are unusable — choose a real expiry and rotate; renewal ownership sits with an external deployment process, and the executor injects the stored value verbatim and performs no token lifecycle of its own. Revocation is real but manual: an administrator disabling or deleting the token ends its access, as does disabling token authentication on the instance — do not assume that restricting new token issuance invalidates tokens already issued.

The full token is shown to the requester once at assignment, so capture it into the vault at creation time.

Executor hygiene: the value must live only in executor memory for the lifetime of a call, must never be written to logs, traces or diagnostics, and must not appear in crash dumps; a deployment that cannot meet that bar must not enable the pack.

Resources

  • splunk-deployment (api, internal): https://splunk-instance.invalid:8089/services
  • splunk-indexed-data (api, pii): https://splunk-instance.invalid:8089/services/search/jobs

Technical package and review record

Complete provider requirements and exclusions

The endpoint authority 'splunk-instance.invalid:8089' is a reserved non-production placeholder (an RFC 2606 reserved TLD) for the customer's splunkd management endpoint: substitute the real management host and port — Splunk Enterprise defaults to port 8089, Splunk Cloud uses https://<deployment-name>.splunkcloud.com:8089 — in the endpoints, the resource locators and the egress allowlist before enabling; the allowlist matches exactly, so all three must be substituted together, substitution is a required deployment step, and allowlisting the reserved host does not make an unsubstituted pack safe (the reserved name is a deliberate fail-closed default: it resolves nowhere by design, so an unsubstituted pack cannot call anything until the installer binds the real host).

Every read endpoint here is a COLLECTION read only: single-record reads (GET /services/saved/searches/{name}, GET /services/data/indexes/{name}, GET /services/search/jobs/{search_id}) are not registered. The ad-hoc search capability creates and dispatches a search job that executes the caller-supplied SPL — registered as create and execute at the minimum R2 tier, not as retrieval-only POST. The SPL in the request's search parameter is caller-controlled, so this pack cannot pin what data the job touches or what the SPL does, and the constraint is enforced by the Splunk role behind the token plus deployment policy — exactly like the role's GRANTs and the adapter's allowlist in the postgres pack.

Splunk documents capabilities as additive and command-gated, so a demonstrably constrained role must omit at least: delete_by_keyword (the delete operator), output_file (outputcsv and outputlookup writes to files and lookups), run_collect and run_mcollect (writes to summary and metrics indexes), run_sendalert (alert notification actions), run_custom_command (custom search commands, which can carry their own effects), schedule_search, rtsearch and schedule_rtsearch, and every edit_* capability; the role's index access restrictions bound what data the SPL can read.

Register it only against a role demonstrated to lack those capabilities; if that boundary cannot be demonstrated, remove the capability — one capability id on an unrestricted endpoint is one permission, and a second id would not create a second one.

Documented exclusions — this pack does not register: saved search creation, modification, deletion or dispatch (POST/DELETE on saved/searches, which can schedule alerting), index creation or modification (POST data/indexes), search job control (DELETE or control actions on search/jobs), knowledge object writes, HEC event ingest (a separate input, default port 8088, that no capability here may reach), servicesNS user-namespace endpoints, and every other splunkd endpoint.

Download the complete package JSON for exact network allowlists, credential requirements, exclusions, and setup notes. Read these requirements before installation.

The full documentation review record is supplied in the evaluation package. The evaluation package runs in your environment and comes only with the paid design partnership. This page reproduces the source links and review block; the full record is available for evaluation. Discuss a design partnership to inspect it before installation.

Review block

This section reproduces the review block recorded in the pack file. The evidence and approval record is separate: for a reviewed pack, it is in the evaluation materials and in the release binary's embedded assets.

Review completed: 2026-09-22

5 sources, retrieved 2026-09-21

Current documentation links are navigation aids. They do not change the package, its historical sources or its review date. Review dates describe a documentation review, not a live integration test. No package is provider-endorsed or yet tested against a live provider tenant.

Release identity

SHA-256 of the pack file bytes: 6c4d11b7abefbe40f408c7498da7376413747b7fc29afcb4b9694e542d7c0180

Distributable: yes, digest matches the release manifest. Editing a package changes its release identity. A deployment plan checks its own file digests; it does not restore reviewed status or authenticate approval.