diff --git a/.gitignore b/.gitignore index 3f455488..d2c62c8b 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,7 @@ splunktional-temp dist/ build/ venv-tools/ -packages/flare/stage/ +packages/flare_splunk_app/stage/ # OS files desktop.ini @@ -26,7 +26,7 @@ __pycache__/ local/ *local.meta *.log -packages/flare/src/main/resources/splunk/bin/lib +packages/flare_splunk_app/src/main/resources/splunk/bin/lib # Environment variables .env diff --git a/Makefile b/Makefile index 93e8ad57..0199ba6a 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ # ─── Variables ─────────────────────────────────────────────────────────────── PYTHON ?= python -STAGE := packages/flare/stage +STAGE := packages/flare_splunk_app/stage DIST := dist -APP_BIN_LIB := packages/flare/src/main/resources/splunk/bin/lib +APP_BIN_LIB := packages/flare_splunk_app src/main/resources/splunk/bin/lib # Splunk versions declared to Splunkbase on publish. Override per release: # make publish SPLUNK_VERSIONS=9.3,... @@ -26,7 +26,7 @@ venv-tools: requirements.tools.txt venv-tools/bin/pip install -r requirements.tools.txt # ─── Build & package ───────────────────────────────────────────────────────── -# Compile the frontend into packages/flare/stage (webpack also copies the +# Compile the frontend into packages/flare_splunk_app/stage (webpack also copies the # Splunk app skeleton from src/main/resources/splunk into stage). .PHONY: build build: node_modules @@ -44,9 +44,9 @@ publish: if [ -z "$$pkg" ]; then echo "No package found in $(DIST)/. Run 'make package' first."; exit 1; fi; \ echo "Publishing $$pkg to Splunkbase..."; \ curl -u $$SPLUNKBASE_CREDS --request POST \ - https://splunkbase.splunk.com/api/v1/app/7602/new_release/ \ + https://splunkbase.splunk.com/api/v1/app/9219/new_release/ \ -F "files[]=@$$pkg" \ - -F "filename=flare.tgz" \ + -F "filename=flare_splunk_app.tgz" \ -F "splunk_versions=$(SPLUNK_VERSIONS)" \ -F "visibility=true" @@ -86,7 +86,7 @@ lint: node_modules venv-tools mypy format-check .PHONY: mypy mypy: venv-tools - venv-tools/bin/mypy --config-file mypy.ini packages/flare + venv-tools/bin/mypy --config-file mypy.ini packages/flare_splunk_app .PHONY: format format: venv-tools node_modules @@ -101,7 +101,7 @@ format-check: venv-tools node_modules sl: splunk-local # Assemble a runnable app in stage/ (frontend + vendored Python), then run it in -# a local Splunk container (compose mounts packages/flare/stage) with a watcher. +# a local Splunk container (compose mounts packages/flare_splunk_app/stage) with a watcher. .PHONY: splunk-local splunk-local: build SKIP_TARBALL=1 ./package.sh diff --git a/README.md b/README.md index 5e9f0b3e..7364d491 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ $ pnpm run setup You’ll have two main directories, one for the created React page and one for the created Splunk app. - `packages/configuration` -- `packages/flare` +- `packages/flare_splunk_app` ## Splunk demo @@ -34,7 +34,7 @@ Splunk demo will allow you to view your new app inside your local Splunk instanc ```bash # navigate to your app folder -$ cd packages/flare +$ cd packages/flare_splunk_app # link the app to your local Splunk instance $ pnpm run link:app @@ -74,7 +74,7 @@ and locally. `package.sh` is the single packaging tool; `make` orchestrates it. | Command | What it does | | --------------- | -------------------------------------------------------------------------------------------- | | `make ci` | Full pipeline (what CI runs): build → package → tooling → lint → validate → test. | -| `make build` | Compile the frontend into `packages/flare/stage/`. | +| `make build` | Compile the frontend into `packages/flare_splunk_app/stage/`. | | `make package` | Vendor the Python runtime deps and produce the installable app at `dist/*.tgz`. | | `make validate` | Run Splunk AppInspect against the packaged `dist/*.tgz`. | | `make lint` | ESLint + Stylelint + mypy + Prettier check. | @@ -91,8 +91,8 @@ Prerequisites for `make`: Node.js `>= 22`, `pnpm` `9.x`, Python `3.9`, and Docke $ make splunk-local ``` -This builds the app, vendors the Python dependencies into `packages/flare/stage`, -starts a Splunk container (compose mounts `packages/flare/stage` as the app), and +This builds the app, vendors the Python dependencies into `packages/flare_splunk_app/stage`, +starts a Splunk container (compose mounts `packages/flare_splunk_app/stage` as the app), and runs the webpack watcher. Open `https://localhost:8000` to view the app. This is an alternative to the `pnpm run link:app` symlink flow above and does not require a local Splunk installation. diff --git a/compose.yml b/compose.yml index 2bde4e2f..eeeaba98 100644 --- a/compose.yml +++ b/compose.yml @@ -12,6 +12,6 @@ services: - SPLUNK_PASSWORD=a_password - SPLUNK_GENERAL_TERMS=--accept-sgt-current-at-splunk-com volumes: - - ./packages/flare/stage:/opt/splunk/etc/apps/flare_splunk_app + - ./packages/flare_splunk_app/stage:/opt/splunk/etc/apps/flare_splunk_app - ./splunk/default.yml:/tmp/defaults/default.yml - ./logs:/opt/splunk/var/log/splunk diff --git a/package.sh b/package.sh index 8baad2f1..823de04b 100755 --- a/package.sh +++ b/package.sh @@ -20,8 +20,8 @@ mkdir -p $PACKAGE_DIR # Identification COMMIT_ID=$(git rev-parse --short=6 HEAD 2>/dev/null || echo "local") APP_FOLDER="flare_splunk_app" -REAL_SRC_DIR=$SCRIPT_DIR/packages/flare/src/main/resources/splunk -SRC_DIR=$SCRIPT_DIR/packages/flare/stage +REAL_SRC_DIR=$SCRIPT_DIR/packages/flare_splunk_app/src/main/resources/splunk +SRC_DIR=$SCRIPT_DIR/packages/flare_splunk_app/stage FULLAPP_DIR=$PACKAGE_DIR/$APP_FOLDER echo "Building package for $APP_FOLDER (Commit: $COMMIT_ID)..." @@ -31,8 +31,10 @@ mkdir -p $FULLAPP_DIR # ─── SYNC src → stage ──────────────────────────────────────────────────────── # Always sync the real source into stage before packaging. echo "Syncing src → stage..." -# Delete old backend folders to prevent stale files, but preserve appserver/ which holds compiled frontend assets -rm -rf "$SRC_DIR/bin" "$SRC_DIR/default" "$SRC_DIR/metadata" "$SRC_DIR/lookups" +# Delete folders that come from src to prevent stale files, but preserve +# appserver/static which holds the compiled frontend assets webpack emits. +rm -rf "$SRC_DIR/bin" "$SRC_DIR/default" "$SRC_DIR/metadata" "$SRC_DIR/lookups" \ + "$SRC_DIR/appserver/templates" "$SRC_DIR/README" cp -R "$REAL_SRC_DIR"/. "$SRC_DIR/" # Remove Python bytecode artifacts that shouldn't be packaged find "$SRC_DIR" -name '__pycache__' -type d -exec rm -rf {} + 2>/dev/null || true diff --git a/packages/flare/src/main/resources/splunk/default/data/ui/views/configuration.xml b/packages/flare/src/main/resources/splunk/default/data/ui/views/configuration.xml deleted file mode 100644 index ba837d16..00000000 --- a/packages/flare/src/main/resources/splunk/default/data/ui/views/configuration.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/packages/flare/.babelrc.js b/packages/flare_splunk_app/.babelrc.js similarity index 100% rename from packages/flare/.babelrc.js rename to packages/flare_splunk_app/.babelrc.js diff --git a/packages/flare/.eslintrc.js b/packages/flare_splunk_app/.eslintrc.js similarity index 100% rename from packages/flare/.eslintrc.js rename to packages/flare_splunk_app/.eslintrc.js diff --git a/packages/flare/.gitignore b/packages/flare_splunk_app/.gitignore similarity index 100% rename from packages/flare/.gitignore rename to packages/flare_splunk_app/.gitignore diff --git a/packages/flare/.npmignore b/packages/flare_splunk_app/.npmignore similarity index 100% rename from packages/flare/.npmignore rename to packages/flare_splunk_app/.npmignore diff --git a/packages/flare/README b/packages/flare_splunk_app/README similarity index 100% rename from packages/flare/README rename to packages/flare_splunk_app/README diff --git a/packages/flare/bin/build.js b/packages/flare_splunk_app/bin/build.js similarity index 100% rename from packages/flare/bin/build.js rename to packages/flare_splunk_app/bin/build.js diff --git a/packages/flare/package.json b/packages/flare_splunk_app/package.json similarity index 100% rename from packages/flare/package.json rename to packages/flare_splunk_app/package.json diff --git a/packages/flare/src/main/resources/splunk/README/splunk_create.conf.spec b/packages/flare_splunk_app/src/main/resources/splunk/README/splunk_create.conf.spec similarity index 100% rename from packages/flare/src/main/resources/splunk/README/splunk_create.conf.spec rename to packages/flare_splunk_app/src/main/resources/splunk/README/splunk_create.conf.spec diff --git a/packages/flare/src/main/resources/splunk/appserver/templates/configuration.html b/packages/flare_splunk_app/src/main/resources/splunk/appserver/templates/configuration.html similarity index 92% rename from packages/flare/src/main/resources/splunk/appserver/templates/configuration.html rename to packages/flare_splunk_app/src/main/resources/splunk/appserver/templates/configuration.html index cdc9909d..7daec2e6 100644 --- a/packages/flare/src/main/resources/splunk/appserver/templates/configuration.html +++ b/packages/flare_splunk_app/src/main/resources/splunk/appserver/templates/configuration.html @@ -20,7 +20,7 @@ __splunkd_partials__ = ${json_decode(splunkd)}; - <% page_path = "/static/app/flare/pages/" + page + ".js" %> + <% page_path = "/static/app/flare_splunk_app/pages/" + page + ".js" %> diff --git a/packages/flare/src/main/resources/splunk/bin/checkpoint_manager.py b/packages/flare_splunk_app/src/main/resources/splunk/bin/checkpoint_manager.py similarity index 100% rename from packages/flare/src/main/resources/splunk/bin/checkpoint_manager.py rename to packages/flare_splunk_app/src/main/resources/splunk/bin/checkpoint_manager.py diff --git a/packages/flare/src/main/resources/splunk/bin/cron_job_ingest_events.py b/packages/flare_splunk_app/src/main/resources/splunk/bin/cron_job_ingest_events.py similarity index 100% rename from packages/flare/src/main/resources/splunk/bin/cron_job_ingest_events.py rename to packages/flare_splunk_app/src/main/resources/splunk/bin/cron_job_ingest_events.py diff --git a/packages/flare/src/main/resources/splunk/bin/flare_constants.py b/packages/flare_splunk_app/src/main/resources/splunk/bin/flare_constants.py similarity index 100% rename from packages/flare/src/main/resources/splunk/bin/flare_constants.py rename to packages/flare_splunk_app/src/main/resources/splunk/bin/flare_constants.py diff --git a/packages/flare/src/main/resources/splunk/bin/flare_external_requests.py b/packages/flare_splunk_app/src/main/resources/splunk/bin/flare_external_requests.py similarity index 100% rename from packages/flare/src/main/resources/splunk/bin/flare_external_requests.py rename to packages/flare_splunk_app/src/main/resources/splunk/bin/flare_external_requests.py diff --git a/packages/flare/src/main/resources/splunk/bin/flare_logger.py b/packages/flare_splunk_app/src/main/resources/splunk/bin/flare_logger.py similarity index 100% rename from packages/flare/src/main/resources/splunk/bin/flare_logger.py rename to packages/flare_splunk_app/src/main/resources/splunk/bin/flare_logger.py diff --git a/packages/flare/src/main/resources/splunk/bin/flare_sdk_client.py b/packages/flare_splunk_app/src/main/resources/splunk/bin/flare_sdk_client.py similarity index 100% rename from packages/flare/src/main/resources/splunk/bin/flare_sdk_client.py rename to packages/flare_splunk_app/src/main/resources/splunk/bin/flare_sdk_client.py diff --git a/packages/flare/src/main/resources/splunk/bin/ingestion_config.py b/packages/flare_splunk_app/src/main/resources/splunk/bin/ingestion_config.py similarity index 100% rename from packages/flare/src/main/resources/splunk/bin/ingestion_config.py rename to packages/flare_splunk_app/src/main/resources/splunk/bin/ingestion_config.py diff --git a/packages/flare/src/main/resources/splunk/bin/splunk_storage.py b/packages/flare_splunk_app/src/main/resources/splunk/bin/splunk_storage.py similarity index 100% rename from packages/flare/src/main/resources/splunk/bin/splunk_storage.py rename to packages/flare_splunk_app/src/main/resources/splunk/bin/splunk_storage.py diff --git a/packages/flare/src/main/resources/splunk/default/app.conf b/packages/flare_splunk_app/src/main/resources/splunk/default/app.conf similarity index 100% rename from packages/flare/src/main/resources/splunk/default/app.conf rename to packages/flare_splunk_app/src/main/resources/splunk/default/app.conf diff --git a/packages/flare/src/main/resources/splunk/default/data/ui/nav/default.xml b/packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/nav/default.xml similarity index 100% rename from packages/flare/src/main/resources/splunk/default/data/ui/nav/default.xml rename to packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/nav/default.xml diff --git a/packages/flare/src/main/resources/splunk/default/data/ui/views/app_logs.xml b/packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/views/app_logs.xml similarity index 100% rename from packages/flare/src/main/resources/splunk/default/data/ui/views/app_logs.xml rename to packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/views/app_logs.xml diff --git a/packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/views/configuration.xml b/packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/views/configuration.xml new file mode 100644 index 00000000..74caa921 --- /dev/null +++ b/packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/views/configuration.xml @@ -0,0 +1,4 @@ + + + + diff --git a/packages/flare/src/main/resources/splunk/default/data/ui/views/dashboard.xml b/packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/views/dashboard.xml similarity index 100% rename from packages/flare/src/main/resources/splunk/default/data/ui/views/dashboard.xml rename to packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/views/dashboard.xml diff --git a/packages/flare/src/main/resources/splunk/default/data/ui/views/search.xml b/packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/views/search.xml similarity index 100% rename from packages/flare/src/main/resources/splunk/default/data/ui/views/search.xml rename to packages/flare_splunk_app/src/main/resources/splunk/default/data/ui/views/search.xml diff --git a/packages/flare/src/main/resources/splunk/default/eventtypes.conf b/packages/flare_splunk_app/src/main/resources/splunk/default/eventtypes.conf similarity index 100% rename from packages/flare/src/main/resources/splunk/default/eventtypes.conf rename to packages/flare_splunk_app/src/main/resources/splunk/default/eventtypes.conf diff --git a/packages/flare/src/main/resources/splunk/default/inputs.conf b/packages/flare_splunk_app/src/main/resources/splunk/default/inputs.conf similarity index 88% rename from packages/flare/src/main/resources/splunk/default/inputs.conf rename to packages/flare_splunk_app/src/main/resources/splunk/default/inputs.conf index db8a3bc3..1cfdaa13 100644 --- a/packages/flare/src/main/resources/splunk/default/inputs.conf +++ b/packages/flare_splunk_app/src/main/resources/splunk/default/inputs.conf @@ -6,4 +6,4 @@ python.version = python3 python.required = 3.9 source = flare sourcetype = flare_json -passAuth = splunk-system-user \ No newline at end of file +passAuth = admin diff --git a/packages/flare/src/main/resources/splunk/default/macros.conf b/packages/flare_splunk_app/src/main/resources/splunk/default/macros.conf similarity index 100% rename from packages/flare/src/main/resources/splunk/default/macros.conf rename to packages/flare_splunk_app/src/main/resources/splunk/default/macros.conf diff --git a/packages/flare/src/main/resources/splunk/default/props.conf b/packages/flare_splunk_app/src/main/resources/splunk/default/props.conf similarity index 100% rename from packages/flare/src/main/resources/splunk/default/props.conf rename to packages/flare_splunk_app/src/main/resources/splunk/default/props.conf diff --git a/packages/flare/src/main/resources/splunk/default/restmap.conf b/packages/flare_splunk_app/src/main/resources/splunk/default/restmap.conf similarity index 100% rename from packages/flare/src/main/resources/splunk/default/restmap.conf rename to packages/flare_splunk_app/src/main/resources/splunk/default/restmap.conf diff --git a/packages/flare/src/main/resources/splunk/default/savedsearches.conf b/packages/flare_splunk_app/src/main/resources/splunk/default/savedsearches.conf similarity index 100% rename from packages/flare/src/main/resources/splunk/default/savedsearches.conf rename to packages/flare_splunk_app/src/main/resources/splunk/default/savedsearches.conf diff --git a/packages/flare/src/main/resources/splunk/default/splunk_create.conf b/packages/flare_splunk_app/src/main/resources/splunk/default/splunk_create.conf similarity index 100% rename from packages/flare/src/main/resources/splunk/default/splunk_create.conf rename to packages/flare_splunk_app/src/main/resources/splunk/default/splunk_create.conf diff --git a/packages/flare/src/main/resources/splunk/default/tags.conf b/packages/flare_splunk_app/src/main/resources/splunk/default/tags.conf similarity index 100% rename from packages/flare/src/main/resources/splunk/default/tags.conf rename to packages/flare_splunk_app/src/main/resources/splunk/default/tags.conf diff --git a/packages/flare/src/main/resources/splunk/default/web.conf b/packages/flare_splunk_app/src/main/resources/splunk/default/web.conf similarity index 100% rename from packages/flare/src/main/resources/splunk/default/web.conf rename to packages/flare_splunk_app/src/main/resources/splunk/default/web.conf diff --git a/packages/flare/src/main/resources/splunk/metadata/default.meta b/packages/flare_splunk_app/src/main/resources/splunk/metadata/default.meta similarity index 100% rename from packages/flare/src/main/resources/splunk/metadata/default.meta rename to packages/flare_splunk_app/src/main/resources/splunk/metadata/default.meta diff --git a/packages/flare/src/main/resources/splunk/static/appIcon.png b/packages/flare_splunk_app/src/main/resources/splunk/static/appIcon.png similarity index 100% rename from packages/flare/src/main/resources/splunk/static/appIcon.png rename to packages/flare_splunk_app/src/main/resources/splunk/static/appIcon.png diff --git a/packages/flare/src/main/resources/splunk/static/appIconAlt.png b/packages/flare_splunk_app/src/main/resources/splunk/static/appIconAlt.png similarity index 100% rename from packages/flare/src/main/resources/splunk/static/appIconAlt.png rename to packages/flare_splunk_app/src/main/resources/splunk/static/appIconAlt.png diff --git a/packages/flare/src/main/resources/splunk/static/appIconAlt_2x.png b/packages/flare_splunk_app/src/main/resources/splunk/static/appIconAlt_2x.png similarity index 100% rename from packages/flare/src/main/resources/splunk/static/appIconAlt_2x.png rename to packages/flare_splunk_app/src/main/resources/splunk/static/appIconAlt_2x.png diff --git a/packages/flare/src/main/resources/splunk/static/appIcon_2x.png b/packages/flare_splunk_app/src/main/resources/splunk/static/appIcon_2x.png similarity index 100% rename from packages/flare/src/main/resources/splunk/static/appIcon_2x.png rename to packages/flare_splunk_app/src/main/resources/splunk/static/appIcon_2x.png diff --git a/packages/flare/src/main/resources/splunk/static/appLogo.png b/packages/flare_splunk_app/src/main/resources/splunk/static/appLogo.png similarity index 100% rename from packages/flare/src/main/resources/splunk/static/appLogo.png rename to packages/flare_splunk_app/src/main/resources/splunk/static/appLogo.png diff --git a/packages/flare/src/main/resources/splunk/static/appLogo_2x.png b/packages/flare_splunk_app/src/main/resources/splunk/static/appLogo_2x.png similarity index 100% rename from packages/flare/src/main/resources/splunk/static/appLogo_2x.png rename to packages/flare_splunk_app/src/main/resources/splunk/static/appLogo_2x.png diff --git a/packages/flare/src/main/webapp/pages/configuration/Styles.ts b/packages/flare_splunk_app/src/main/webapp/pages/configuration/Styles.ts similarity index 100% rename from packages/flare/src/main/webapp/pages/configuration/Styles.ts rename to packages/flare_splunk_app/src/main/webapp/pages/configuration/Styles.ts diff --git a/packages/flare/src/main/webapp/pages/configuration/index.tsx b/packages/flare_splunk_app/src/main/webapp/pages/configuration/index.tsx similarity index 100% rename from packages/flare/src/main/webapp/pages/configuration/index.tsx rename to packages/flare_splunk_app/src/main/webapp/pages/configuration/index.tsx diff --git a/packages/flare/stylelint.config.js b/packages/flare_splunk_app/stylelint.config.js similarity index 100% rename from packages/flare/stylelint.config.js rename to packages/flare_splunk_app/stylelint.config.js diff --git a/packages/flare/tsconfig.json b/packages/flare_splunk_app/tsconfig.json similarity index 100% rename from packages/flare/tsconfig.json rename to packages/flare_splunk_app/tsconfig.json diff --git a/packages/flare/webpack.config.js b/packages/flare_splunk_app/webpack.config.js similarity index 100% rename from packages/flare/webpack.config.js rename to packages/flare_splunk_app/webpack.config.js diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 952d52ec..501ebde5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,7 +169,7 @@ importers: specifier: ^5.9.0 version: 5.10.0 - packages/flare: + packages/flare_splunk_app: dependencies: '@splunk/configuration': specifier: workspace:*