Apps agent interface: placement, credential check, and minimal ITSI merge
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 58/100
Research direction
Start by reading the existing project_hit search code, Splunkbase timeout handling, spa apps download credential precedence, COMMAND_SCHEMA, and spa config merge transaction and validation paths. Check the related tests and template listing before making changes. Done means the placement and timeout responses, credential check, reference update, and itsi-minimal template and merge behavior all match the stated cases, with credentials absent from output.
Written by the indexing model from the issue text.
Description
Summary
An agent can see where Splunkbase app 833 belongs, check whether Splunkbase credentials are set without printing them, and apply the minimal ITSI app set with spa config merge itsi-minimal --yes.
Slice of #67: app placement, field-report items 2, 4, 6, and 7. The rest of the skills pack stays on #67.
Placement on search rows
project_hit adds optional placement fields.
- When the Splunkbase record already has
docs_urlordocumentation, pass that link through asinstall_docs_url. Leave the HTML unfetched. - App id 833 always includes this placement, even when the raw record has no docs link:
roles:search_head,indexer,heavy_forwarder,universal_forwarderinstall_docs_url:https://splunk.github.io/splunk-add-on-for-unix-and-linux/Install/placement_confidence:highplacement_source: that same URL
- Other app ids keep only fields present on the Splunkbase record. A search hit for app 9999 has no
roleskey.
Splunkbase timeout
Search, snippet, and app-get use a 20 second timeout. A timeout is a retryable failure:
ok: falseschema_versionpresenterrorbegins withSplunkbase request timed outretryable: true- the object has no
datakey
Download may keep a longer timeout. Search, snippet, and get pass 20 seconds explicitly.
Credential check
spa apps auth check returns only username_set and password_set, using the same precedence as spa apps download. The command reports those two booleans and leaves the values out of stdout, stderr, and errors.
With SPLUNKBASE_PASSWORD set and no username, the JSON is {"username_set": false, "password_set": true}.
Register the action in COMMAND_SCHEMA. Regenerate docs/commands.md only after the drift test fails.
In skills/spa/spa-create-config/references/secrets-handling.md, replace both ${!v} loops with spa apps auth check. This slice edits that secrets-handling reference only.
Minimal ITSI template
Ship examples/templates/itsi-minimal.yml. The first comment line is the spa config templates summary. App ids, in order: 1841 (premium_app: itsi, no target_roles), then 2882, 2890, and 1621 (each source: splunkbase and target_roles: [search_head]).
# Minimal ITSI apps: 1841, 2882, 2890, and 1621. No content library, playbooks, Java, or license files.
splunk_app_deployment:
apps:
- name: Splunk IT Service Intelligence
source: splunkbase
app_id: 1841
premium_app: itsi
- name: Splunk_SA_Scientific_Python_linux_x86_64
source: splunkbase
app_id: 2882
target_roles: [search_head]
- name: Splunk_ML_Toolkit
source: splunkbase
app_id: 2890
target_roles: [search_head]
- name: Splunk_SA_CIM
source: splunkbase
app_id: 1621
target_roles: [search_head]
spa config merge applies the fragment in the existing config transaction.
spa config merge itsi-minimal --dry-runpreviews and leaves the file unchanged.- Without
--yes, a non-interactive human run leaves the file unchanged. spa config merge itsi-minimal --yeswrites all four apps in one revision, or writes nothing if validation fails.- A second apply leaves the file bytes unchanged.
- Agent mode already writes
spa configmutations without--yes. Leave that gate as it is. - The merge command needs no
COMMAND_SCHEMAchange and nodocs/commands.mdregen. - Merge onto a config that already has
search_head,indexer, andlicense_manager. A config missing one of those roles fails validation and stays unchanged. spa config templateslistsitsi-minimal(that summary line) beforeos-tools, matching sorted template names.
The template and the merged config contain app ids 1841, 2882, 2890, and 1621 only. They omit content-pack id 5391 and omit run_playbook.
Out of scope
- Content library
5391,customizations, and playbooks. ospackages,splunk_license_file, and a new host. Java, license files, andlicense_managerstay off the fragment: merge matches hosts by name, and ITSI validation already requiressearch_head,indexer, andlicense_manageron the target.- #52 (credentials /
spa auth) and #68 (single-app deploy). - Examples, help text, and errors that contain a Splunkbase password.
Related
- #67 (parent: skills, agents, and runbooks)
- #59 (Splunkbase search, snippet, download)
- #76 (config merge)
Notes
Pickup-ready enhancement. Report credential presence only. Leave secret values, PEM material, AWS keys, and license XML out of output.
- Dominant language
- Python
- Stars
- 138
- Forks
- 51
- Avg merge
- 1h 38m
- Merged PRs (30d)
- 48
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from splunk/splunk-platform-automator
-
Difficulty 1/5 Under an hour Newbie friendliness 18/100
splunk/splunk-platform-automator#155 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
splunk/splunk-platform-automator#113 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
splunk/splunk-platform-automator#96 ·
Maintainers usually reply within 1 day
-
enhancement question
Difficulty 5/5 Over a week Newbie friendliness 12/100
splunk/splunk-platform-automator#95 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 38/100
splunk/splunk-platform-automator#88 ·
Maintainers usually reply within 1 day
All issues in splunk/splunk-platform-automator
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
roman-corgi/corgisim#327 ·
Maintainers usually reply within 2 days
-
[Bug]: opencode_go chat route drops reasoning_effort (even 'none'), while the same endpoint honors it via custom_llm_provider=openaiPossibly taken @arvindkumar-ship-it claimed this today. Openllm translation
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
BerriAI/litellm#51871 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
PolicyEngine backdates South Carolina’s EITC into 2015–2017Possibly taken @MaxGhenis claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PolicyEngine/policyengine-us#10944 ·
Maintainers usually reply within 2 days
-
fix(frontend): resolve SSE parser crash on unhandled Ref methods and undefined actions identifierOpenbug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
kodokbakar/MiroFish-Local#94 ·
Maintainers usually reply within 1 day