Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
cc64e8c
Prepare for Verification
YKawesome Jul 14, 2026
ad3efb6
Fix documentation and metadata
kevinthegreat1 Jul 14, 2026
00d01a1
Add init db if not exists
YKawesome Jul 14, 2026
c5c3a37
Remove provisioning
YKawesome Jul 14, 2026
0201f01
ci: fix grafana plugin release workflow
YKawesome Jul 15, 2026
4647ac2
Update release workflow to mirror grafana build-plugin
kevinthegreat1 Jul 15, 2026
83cb9c3
Fix minor issues in CI
YKawesome Jul 15, 2026
f95340c
Merge branch '81-deploy-plugin-figure-out-communityprivate-signing' o…
kevinthegreat1 Jul 15, 2026
315efec
Fix mage build command
kevinthegreat1 Jul 15, 2026
eacc8bf
Prevent triggering other CI on grafana-only changes
YKawesome Jul 15, 2026
3ea5661
Fix CI linting errors
YKawesome Jul 15, 2026
ef89ee6
Fix working-directory
YKawesome Jul 15, 2026
3de18af
Add empty install.sh
YKawesome Jul 15, 2026
7731de9
Update README.md
kevinthegreat1 Jul 15, 2026
f47567c
Add doc to grafana release workflow
kevinthegreat1 Jul 15, 2026
18d6905
Add install script and docs
YKawesome Jul 15, 2026
6d33935
Allow loading unsigned hermes datasource
kevinthegreat1 Jul 15, 2026
acdaf27
Update docs with installation options
YKawesome Jul 15, 2026
e2c4a66
Fix install script for alpine
YKawesome Jul 15, 2026
b2ab848
Update docker compose to install plugin
kevinthegreat1 Jul 15, 2026
06f6ce6
Update docs
kevinthegreat1 Jul 15, 2026
7ffc360
Merge branch 'main' into 81-deploy-plugin-figure-out-communityprivate…
YKawesome Jul 15, 2026
2b57085
Cause Docker exit on failed hermes installation
YKawesome Jul 16, 2026
7d74d0e
Merge branch '81-deploy-plugin-figure-out-communityprivate-signing' o…
YKawesome Jul 16, 2026
8552210
Change default docker compose to timescale stack
kevinthegreat1 Jul 16, 2026
cf748a3
Fix provisioned datasource
kevinthegreat1 Jul 16, 2026
8453d38
Fix rebase
kevinthegreat1 Jul 16, 2026
ed740b2
Fix docs link to docker compose
kevinthegreat1 Jul 16, 2026
2982906
Update Release CI
YKawesome Jul 16, 2026
3cedb3c
Merge branch '81-deploy-plugin-figure-out-communityprivate-signing' o…
YKawesome Jul 16, 2026
6c8de9d
Update development readme and docs
kevinthegreat1 Jul 16, 2026
be938d9
Merge branch '81-deploy-plugin-figure-out-communityprivate-signing' o…
kevinthegreat1 Jul 16, 2026
3edbdc2
Rename directory from nasa-hermes-datasource to grafana-datasource-pl…
kevinthegreat1 Jul 16, 2026
e60ae87
Re-separate release workflows
kevinthegreat1 Jul 16, 2026
75f8cbd
Update grafana release
kevinthegreat1 Jul 16, 2026
b15c214
Fix grafana release
kevinthegreat1 Jul 16, 2026
ec9cb58
Change build vscode action name back
kevinthegreat1 Jul 16, 2026
0345c69
Pin Version + Update Install Script
YKawesome Jul 16, 2026
f4616d0
Update db and grafana docs extensively
kevinthegreat1 Jul 16, 2026
4d4dfa8
Merge branch '81-deploy-plugin-figure-out-communityprivate-signing' o…
kevinthegreat1 Jul 16, 2026
888cf1c
Tweak grafana docs
kevinthegreat1 Jul 16, 2026
5edb049
Fix logs docker container name
kevinthegreat1 Jul 17, 2026
c7504b6
Fix data field name and fix merge
kevinthegreat1 Jul 20, 2026
d0b880f
Update and clean up grafana plugin docs
kevinthegreat1 Jul 20, 2026
7fb4f50
Fix backend tests
kevinthegreat1 Jul 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,12 @@ updates:
commit-message:
prefix: 'chore'
include: 'scope'

- package-ecosystem: 'gomod'
directory: '/grafana-datasource-plugin'
schedule:
interval: 'weekly'
open-pull-requests-limit: 5
commit-message:
prefix: 'chore'
include: 'scope'
2 changes: 2 additions & 0 deletions .github/workflows/build-go-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ on:
- 'docs/**'
- 'README.md'
- 'zensical.toml'
- 'grafana-datasource-plugin/**'
- '.github/workflows/grafana-*.yml'

jobs:
test:
Expand Down
17 changes: 14 additions & 3 deletions .github/workflows/grafana-bundle-stats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ on:
branches:
- main
paths:
- 'nasa-hermes-datasource/**'
- 'grafana-datasource-plugin/**'
push:
branches:
- main
paths:
- 'nasa-hermes-datasource/**'
- 'grafana-datasource-plugin/**'

permissions:
contents: read
Expand All @@ -28,6 +28,17 @@ jobs:
with:
persist-credentials: false

- name: Setup Node.js environment
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: ./grafana-datasource-plugin/package-lock.json

- name: Install plugin dependencies
working-directory: ./grafana-datasource-plugin
run: npm ci

- uses: grafana/plugin-actions/bundle-size@bundle-size/v1.0.2
with:
path: ./nasa-hermes-datasource
working-directory: ./grafana-datasource-plugin
26 changes: 13 additions & 13 deletions .github/workflows/grafana-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ on:
- master
- main
paths:
- 'nasa-hermes-datasource/**'
- 'grafana-datasource-plugin/**'
pull_request:
branches:
- master
- main
paths:
- 'nasa-hermes-datasource/**'
- 'grafana-datasource-plugin/**'

permissions:
contents: read
Expand All @@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./nasa-hermes-datasource
working-directory: ./grafana-datasource-plugin
outputs:
plugin-id: ${{ steps.metadata.outputs.plugin-id }}
plugin-version: ${{ steps.metadata.outputs.plugin-version }}
Expand All @@ -40,7 +40,7 @@ jobs:
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: ./nasa-hermes-datasource/package-lock.json
cache-dependency-path: ./grafana-datasource-plugin/package-lock.json

- name: Install dependencies
run: npm ci
Expand All @@ -66,30 +66,30 @@ jobs:
if: steps.check-for-backend.outputs.has-backend == 'true'
uses: actions/setup-go@v6
with:
go-version-file: ./nasa-hermes-datasource/go.mod
go-version-file: ./grafana-datasource-plugin/go.mod

- name: Lint backend
if: steps.check-for-backend.outputs.has-backend == 'true'
uses: golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a # v9.3.0
with:
version: latest
working-directory: ./nasa-hermes-datasource
working-directory: ./grafana-datasource-plugin

- name: Build backend
if: steps.check-for-backend.outputs.has-backend == 'true'
uses: magefile/mage-action@a662bd8c29d8106879588cfff83b2faf6e6f59db # v4.0.0
with:
version: latest
args: buildAll
workdir: ./nasa-hermes-datasource
workdir: ./grafana-datasource-plugin

- name: Test backend
if: steps.check-for-backend.outputs.has-backend == 'true'
uses: magefile/mage-action@a662bd8c29d8106879588cfff83b2faf6e6f59db # v4.0.0
with:
version: latest
args: test
workdir: ./nasa-hermes-datasource
workdir: ./grafana-datasource-plugin

- name: Check for E2E
id: check-for-e2e
Expand Down Expand Up @@ -137,7 +137,7 @@ jobs:
uses: actions/upload-artifact@v7
with:
name: ${{ steps.metadata.outputs.plugin-id }}-${{ steps.metadata.outputs.plugin-version }}
path: nasa-hermes-datasource/${{ steps.metadata.outputs.plugin-id }}
path: grafana-datasource-plugin/${{ steps.metadata.outputs.plugin-id }}
retention-days: 5

resolve-versions:
Expand All @@ -157,7 +157,7 @@ jobs:
- name: Read grafanaDependency from plugin.json
id: plugin-dep
run: |
DEP=$(jq -r '.dependencies.grafanaDependency' nasa-hermes-datasource/src/plugin.json)
DEP=$(jq -r '.dependencies.grafanaDependency' grafana-datasource-plugin/src/plugin.json)
echo "grafana-dependency=${DEP}" >> "$GITHUB_OUTPUT"

- name: Resolve Grafana E2E versions
Expand All @@ -177,7 +177,7 @@ jobs:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./nasa-hermes-datasource
working-directory: ./grafana-datasource-plugin
steps:
- uses: actions/checkout@v6
with:
Expand All @@ -186,7 +186,7 @@ jobs:
- name: Download plugin
uses: actions/download-artifact@v8
with:
path: nasa-hermes-datasource/dist
path: grafana-datasource-plugin/dist
name: ${{ needs.build.outputs.plugin-id }}-${{ needs.build.outputs.plugin-version }}

- name: Execute permissions on binary
Expand All @@ -199,7 +199,7 @@ jobs:
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: ./nasa-hermes-datasource/package-lock.json
cache-dependency-path: ./grafana-datasource-plugin/package-lock.json

- name: Install dev dependencies
run: npm ci
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/grafana-cp-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ jobs:
with:
# Make sure to save the token in your repository secrets as `GH_PAT_TOKEN`
token: ${{ secrets.GH_PAT_TOKEN }}
path: ./nasa-hermes-datasource
path: ./grafana-datasource-plugin
8 changes: 4 additions & 4 deletions .github/workflows/grafana-is-compatible.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Grafana Latest Grafana API compatibility check
on:
pull_request:
paths:
- 'nasa-hermes-datasource/**'
- 'grafana-datasource-plugin/**'

jobs:
compatibilitycheck:
Expand All @@ -11,7 +11,7 @@ jobs:
contents: read
defaults:
run:
working-directory: ./nasa-hermes-datasource
working-directory: ./grafana-datasource-plugin
steps:
- uses: actions/checkout@v6
with:
Expand All @@ -22,7 +22,7 @@ jobs:
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: ./nasa-hermes-datasource/package-lock.json
cache-dependency-path: ./grafana-datasource-plugin/package-lock.json

- name: Install dependencies
run: npm ci
Expand All @@ -34,7 +34,7 @@ jobs:
id: find-module-ts
run: |
MODULETS="$(find ./src -type f \( -name "module.ts" -o -name "module.tsx" \))"
echo "modulets=./nasa-hermes-datasource/${MODULETS#./}" >> $GITHUB_OUTPUT
echo "modulets=./grafana-datasource-plugin/${MODULETS#./}" >> $GITHUB_OUTPUT

- name: Compatibility check
uses: grafana/plugin-actions/is-compatible@is-compatible/v1.0.2
Expand Down
94 changes: 79 additions & 15 deletions .github/workflows/grafana-release.yml
Original file line number Diff line number Diff line change
@@ -1,30 +1,94 @@
# This GitHub Action automates the process of building Grafana plugins.
# (For more information, see https://github.com/grafana/plugin-actions/blob/main/build-plugin/README.md)
# Thie workflow follows https://github.com/grafana/plugin-actions/tree/main/build-plugin, but is modifed to work with this monorepo.

name: Grafana Release

on:
push:
tags:
- 'v*' # Run workflow on version tags, e.g. v1.0.0.
release:
types: [published]
workflow_dispatch:

permissions: read-all

jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
runs-on: ubuntu-latest
defaults:
run:
working-directory: grafana-datasource-plugin

steps:
- uses: actions/checkout@v6

- uses: actions/setup-node@v6
with:
persist-credentials: false
node-version: '22'
- uses: actions/setup-go@v5
with:
go-version-file: ./grafana-datasource-plugin/go.mod

- name: Install frontend dependencies
run: npm ci
- name: Build frontend
run: npm run build

- name: Test backend
uses: magefile/mage-action@v4
with:
version: latest
args: coverage
workdir: ./grafana-datasource-plugin
- name: Build backend
uses: magefile/mage-action@v4
with:
version: latest
args: buildAll
workdir: ./grafana-datasource-plugin

- name: Get plugin metadata
id: metadata
run: |
sudo apt-get install jq

export GRAFANA_PLUGIN_ID=$(cat dist/plugin.json | jq -r .id)
export GRAFANA_PLUGIN_VERSION=$(cat dist/plugin.json | jq -r .info.version)
export GRAFANA_PLUGIN_TYPE=$(cat dist/plugin.json | jq -r .type)
export GRAFANA_PLUGIN_ARTIFACT=${GRAFANA_PLUGIN_ID}-${GRAFANA_PLUGIN_VERSION}.zip
export GRAFANA_PLUGIN_ARTIFACT_SHA1SUM=${GRAFANA_PLUGIN_ARTIFACT}.sha1

echo "plugin-id=${GRAFANA_PLUGIN_ID}" >> $GITHUB_OUTPUT
echo "plugin-version=${GRAFANA_PLUGIN_VERSION}" >> $GITHUB_OUTPUT
echo "plugin-type=${GRAFANA_PLUGIN_TYPE}" >> $GITHUB_OUTPUT
echo "archive=${GRAFANA_PLUGIN_ARTIFACT}" >> $GITHUB_OUTPUT
echo "archive-sha1sum=${GRAFANA_PLUGIN_ARTIFACT_SHA1SUM}" >> $GITHUB_OUTPUT

echo "github-tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
shell: bash
working-directory: ./grafana-datasource-plugin
- name: Package plugin
id: package-plugin
run: |
mv dist $PLUGIN_ID
zip $PLUGIN_ARCHIVE $PLUGIN_ID -r
sha1sum $PLUGIN_ARCHIVE | cut -f1 -d' ' > $PLUGIN_ARCHIVE_SHA1SUM
shell: bash
env:
PLUGIN_ID: ${{ steps.metadata.outputs.plugin-id }}
PLUGIN_ARCHIVE: ${{ steps.metadata.outputs.archive }}
PLUGIN_ARCHIVE_SHA1SUM: ${{ steps.metadata.outputs.archive-sha1sum }}
working-directory: ./grafana-datasource-plugin

- uses: grafana/plugin-actions/build-plugin@build-plugin/v1.0.2
- name: Validate plugin
run: |
npx -y @grafana/plugin-validator@latest -sourceCodeUri file://./ $PLUGIN_ARCHIVE
shell: bash
env:
PLUGIN_ARCHIVE: ${{ steps.metadata.outputs.archive }}
working-directory: ./grafana-datasource-plugin
- name: Upload to GitHub Release
uses: softprops/action-gh-release@v2
with:
path: ./nasa-hermes-datasource
# Uncomment to enable plugin signing
# (For more info on how to generate the access policy token see https://grafana.com/developers/plugin-tools/publish-a-plugin/sign-a-plugin#generate-an-access-policy-token)
# Make sure to save the token in your repository secrets
#policy_token: $
# Usage of GRAFANA_API_KEY is deprecated, prefer `policy_token` option above
#grafana_token: $
files: |
./grafana-datasource-plugin/${{ steps.metadata.outputs.archive }}
./grafana-datasource-plugin/${{ steps.metadata.outputs.archive-sha1sum }}
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,18 @@ and our [documentation](https://nasa.github.io/hermes/).
- An extensible and pluggable telemetry processing framework for interacting with flight software downlink
- Out of the box support for [F Prime](https://github.com/nasa/fprime)
- Integration with [Grafana](https://grafana.com)

## Development & Building

### VS Code Extension

Run the `All` configuration from the VS Code run window to run the extension development host with the plugin.

### Docs
```
. .venv/bin/activate
zensical serve
```

### Grafana Plugin
See [grafana-datasource-plugin/README.md](grafana-datasource-plugin/README.md)
15 changes: 15 additions & 0 deletions config/datasources/grafana-datasources.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
apiVersion: 1

datasources:
- name: Hermes Datasource
type: nasa-hermes-datasource
access: proxy
isDefault: true
editable: true

jsonData:
host: 'timescaledb:5432'
user: 'postgres'
database: 'hermes'
secureJsonData:
password: 'password'
5 changes: 0 additions & 5 deletions config/grafana-config.ini

This file was deleted.

11 changes: 0 additions & 11 deletions config/grafana-dashboards.yaml

This file was deleted.

Loading
Loading