diff --git a/.changeset/purple-lions-join.md b/.changeset/purple-lions-join.md new file mode 100644 index 0000000..2d4e554 --- /dev/null +++ b/.changeset/purple-lions-join.md @@ -0,0 +1,5 @@ +--- +'grafana-zabbix': patch +--- + +Fix: Basic authentication in zabbix <7.2 diff --git a/.github/workflows/compatibility-50.yml b/.github/workflows/compatibility-50.yml new file mode 100644 index 0000000..5268d22 --- /dev/null +++ b/.github/workflows/compatibility-50.yml @@ -0,0 +1,35 @@ +name: zabbix_50 +run-name: Compatibility with Zabbix 5.0 test + +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +jobs: + compatibility-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5.3.0 + + - name: Start Zabbix environment + run: | + docker compose -f devenv/zabbix50/docker-compose.yml up -d + # Wait for Zabbix to be ready + sleep 30 + + - name: Run integration tests + env: + INTEGRATION_TEST50: 'true' + ZABBIX_URL: 'https://localhost/api_jsonrpc.php' + ZABBIX_USER: 'Admin' + ZABBIX_PASSWORD: 'zabbix' + run: go test -v ./pkg/zabbixapi/... + + - name: Cleanup + if: always() + run: docker compose -f devenv/zabbix50/docker-compose.yml down -v diff --git a/.github/workflows/compatibility-60.yml b/.github/workflows/compatibility-60.yml new file mode 100644 index 0000000..874a302 --- /dev/null +++ b/.github/workflows/compatibility-60.yml @@ -0,0 +1,35 @@ +name: zabbix_60 +run-name: Compatibility with Zabbix 6.0 test + +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +jobs: + compatibility-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5.3.0 + + - name: Start Zabbix environment + run: | + docker compose -f devenv/zabbix60/docker-compose.yml up -d + # Wait for Zabbix to be ready + sleep 30 + + - name: Run integration tests + env: + INTEGRATION_TEST60: 'true' + ZABBIX_URL: 'https://localhost/api_jsonrpc.php' + ZABBIX_USER: 'Admin' + ZABBIX_PASSWORD: 'zabbix' + run: go test -v ./pkg/zabbixapi/... + + - name: Cleanup + if: always() + run: docker compose -f devenv/zabbix60/docker-compose.yml down -v diff --git a/.github/workflows/compatibility-70.yml b/.github/workflows/compatibility-70.yml new file mode 100644 index 0000000..a554d85 --- /dev/null +++ b/.github/workflows/compatibility-70.yml @@ -0,0 +1,35 @@ +name: zabbix_70 +run-name: Compatibility with Zabbix 7.0 test + +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +jobs: + compatibility-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5.3.0 + + - name: Start Zabbix environment + run: | + docker compose -f devenv/zabbix70/docker-compose.yml up -d + # Wait for Zabbix to be ready + sleep 30 + + - name: Run integration tests + env: + INTEGRATION_TEST70: 'true' + ZABBIX_URL: 'https://localhost/api_jsonrpc.php' + ZABBIX_USER: 'Admin' + ZABBIX_PASSWORD: 'zabbix' + run: go test -v ./pkg/zabbixapi/... + + - name: Cleanup + if: always() + run: docker compose -f devenv/zabbix70/docker-compose.yml down -v diff --git a/.github/workflows/compatibility-72.yml b/.github/workflows/compatibility-72.yml new file mode 100644 index 0000000..3c4b7d0 --- /dev/null +++ b/.github/workflows/compatibility-72.yml @@ -0,0 +1,35 @@ +name: zabbix_72 +run-name: Compatibility with Zabbix 7.2 test + +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +jobs: + compatibility-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5.3.0 + + - name: Start Zabbix environment + run: | + docker compose -f devenv/zabbix72/docker-compose.yml up -d + # Wait for Zabbix to be ready + sleep 30 + + - name: Run integration tests + env: + INTEGRATION_TEST72: 'true' + ZABBIX_URL: 'http://localhost:8188/api_jsonrpc.php' + ZABBIX_USER: 'Admin' + ZABBIX_PASSWORD: 'zabbix' + run: go test -v ./pkg/zabbixapi/... + + - name: Cleanup + if: always() + run: docker compose -f devenv/zabbix72/docker-compose.yml down -v diff --git a/.gitignore b/.gitignore index 3724c0b..a116a3e 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,7 @@ alexanderzobnin-zabbix-app.zip public/css/*.min.css provisioning/ + +# SSL certificates +devenv/nginx/nginx.crt +devenv/nginx/nginx.key diff --git a/devenv/default/Dockerfile b/devenv/default/Dockerfile deleted file mode 100644 index 2441df1..0000000 --- a/devenv/default/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -ARG grafana_version=latest - -FROM grafana/grafana:${grafana_version} - -# Make it as simple as possible to access the grafana instance for development purposes -# Do NOT enable these settings in a public facing / production grafana instance -ENV GF_AUTH_ANONYMOUS_ORG_ROLE "Admin" -ENV GF_AUTH_ANONYMOUS_ENABLED "true" -ENV GF_AUTH_BASIC_ENABLED "false" -# Set development mode so plugins can be loaded without the need to sign -ENV GF_DEFAULT_APP_MODE "development" - -# Inject livereload script into grafana index.html -USER root -RUN sed -i 's/<\/body><\/html>/