{"id":24956688,"url":"https://github.com/doodlescheduling/saml-exporter","last_synced_at":"2025-04-10T19:02:10.350Z","repository":{"id":195984866,"uuid":"694178729","full_name":"DoodleScheduling/saml-exporter","owner":"DoodleScheduling","description":"SAML Metadata exporter for prometheus","archived":false,"fork":false,"pushed_at":"2025-04-01T13:55:06.000Z","size":457,"stargazers_count":1,"open_issues_count":9,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T14:41:18.612Z","etag":null,"topics":["exporter","idp-metadata","metrics","prometheus","saml","sp-metadata","x509-parser"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DoodleScheduling.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-20T13:35:38.000Z","updated_at":"2025-04-01T13:54:04.000Z","dependencies_parsed_at":"2024-02-25T16:26:10.443Z","dependency_job_id":"178dda9c-4758-4bd9-a76a-580834fc1cb6","html_url":"https://github.com/DoodleScheduling/saml-exporter","commit_stats":{"total_commits":48,"total_committers":2,"mean_commits":24.0,"dds":"0.45833333333333337","last_synced_commit":"6742e745bfc5868c36c107bd0f74b8c44e3f4584"},"previous_names":["doodlescheduling/saml-exporter"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DoodleScheduling%2Fsaml-exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DoodleScheduling%2Fsaml-exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DoodleScheduling%2Fsaml-exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DoodleScheduling%2Fsaml-exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DoodleScheduling","download_url":"https://codeload.github.com/DoodleScheduling/saml-exporter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248278747,"owners_count":21077309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["exporter","idp-metadata","metrics","prometheus","saml","sp-metadata","x509-parser"],"created_at":"2025-02-03T06:40:47.158Z","updated_at":"2025-04-10T19:02:10.315Z","avatar_url":"https://github.com/DoodleScheduling.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Prometheus SAML Metadata exporter\n[![release](https://github.com/doodlescheduling/saml-exporter/actions/workflows/release.yaml/badge.svg)](https://github.com/doodlescheduling/saml-exporter/actions/workflows/release.yaml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/doodlescheduling/saml-exporter)](https://goreportcard.com/report/github.com/doodlescheduling/saml-exporter)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/DoodleScheduling/saml-exporter/badge)](https://api.securityscorecards.dev/projects/github.com/DoodleScheduling/saml-exporter)\n[![Coverage Status](https://coveralls.io/repos/github/DoodleScheduling/saml-exporter/badge.svg?branch=master)](https://coveralls.io/github/DoodleScheduling/saml-exporter?branch=master)\n[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/saml-exporter)](https://artifacthub.io/packages/search?repo=saml-exporter)\n\nSAML Metadata exporter for [Prometheus](https://prometheus.io).\n\n## Features\n\n* Tests if the SAML endpoint is reachable and exposes related http metrics\n* Exposes metrics related to all encryption and signing x509 certificates\n* Supports multiple SAML endpoints\n\n## Installation\n\nGet the exporter either as a binaray from the latest release or packaged as a [Docker image](https://github.com/doodlescheduling/saml-exporter/pkgs/container/saml-exporter).\n\n### Helm Chart\nFor kubernetes users there is an official helm chart.\nPlease read the installation instructions [here](https://github.com/doodlescheduling/saml-exporter/blob/master/chart/saml-exporter/README.md).\n\n```sh\nhelm template saml-exporter oci://ghcr.io/doodlescheduling/charts/saml-exporter --set samlMetadataURLSlice='{http://idp/metadata}'\n```\n\n### Docker\nYou can run the exporter using docker:\n```sh\ndocker run ghcr.io/doodlescheduling/saml-exporter:latest http://idp/metadata\n```\n\n## Usage\n\n```\nsaml-exporter\n```\n\nUse the `-help` flag to get help information.\n\n## Access metrics\nThe metrics are by default exposed at `/metrics`.\n\n```\ncurl localhost:9412/metrics\n```\n\n## Exporter configuration\n\nThe exporter can be configured by either command line flags (`saml-exporter -h`) or by defining env variables.\n\n| Env variable             | Description                              | Default |\n|--------------------------|------------------------------------------|---------|\n| URL                      | Comma separated list of http URL to SAML metadata  | `` |\n| LOG_LEVEL                | Log level                                | `info` |\n| LOG_ENCODING             | Log format                               | `json` |\n| BIND                     | Bind address for the HTTP server         | `:9412` |\n| METRICS_PATH             | Metrics endpoint                         | `/metrics` |\n| HEALTH_PATH              | Health probe endpoint                    | `/health` |\n| USER_AGENT               | HTTP request User agent                  | `saml-exporter (go-http-client)` |\n\n## Exposed metrics \n\n| Name                     | Description                              | Type | Labels |\n|--------------------------|------------------------------------------|---------|-----------|\n| `saml_exporter_build_info`    | Build info SAML exporter            | `Gauge` | `\"branch\", \"goversion\", \"revision\", \"revision\"` |\n| `http_client_requests_total`    | HTTP client request                      | `Counter` | `\"host\", \"code\", \"method\"` |\n| `saml_metadata_errors_total`   | Errors encountered while parsing SAML metadata | `Counter` | `\"url\"` |\n| `saml_x509_read_errors_total`  | Errors encountered while parsing SAML X509 certificates  | `Counter` | `\"entityid\", \"use\"` |\n| `saml_x509_cert_not_valid_after` | SAML X509 certificate expiration date  | `Gauge` | `\"entityid\", \"use\", \"serial_number\", \"issuer_C\", \"issuer_CN\", \"issuer_L\", \"issuer_O\", \"issuer_ST\", \"subject_C\", \"subject_CN\", \"subject_L\", \"subject_O\"` |\n| `saml_x509_cert_not_valid_before` | SAML X509 certificate not valid before  | `Gauge` | `\"entityid\", \"use\", \"serial_number\", \"issuer_C\", \"issuer_CN\", \"issuer_L\", \"issuer_O\", \"issuer_ST\", \"subject_C\", \"subject_CN\", \"subject_L\", \"subject_O\"` |\n\n## Grafana dashboard\n\nThis exporter comes with a read to use grafana dashboard, see ./grafana/dashboard.json\n**Note**: The helm chart as well as the kustomize base will deploy the grafana dashboard as a ConfigMap.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoodlescheduling%2Fsaml-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoodlescheduling%2Fsaml-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoodlescheduling%2Fsaml-exporter/lists"}