{"id":19096539,"url":"https://github.com/sapcc/hermes","last_synced_at":"2025-04-30T14:13:20.448Z","repository":{"id":21529730,"uuid":"89575387","full_name":"sapcc/hermes","owner":"sapcc","description":"Audit Data API for OpenStack deployments. ","archived":false,"fork":false,"pushed_at":"2025-04-18T02:13:03.000Z","size":18198,"stargazers_count":21,"open_issues_count":4,"forks_count":2,"subscribers_count":48,"default_branch":"master","last_synced_at":"2025-04-18T15:15:30.661Z","etag":null,"topics":["audit","audit-apis","cadf","golang","openstack"],"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/sapcc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-04-27T08:35:59.000Z","updated_at":"2025-04-18T02:13:02.000Z","dependencies_parsed_at":"2023-12-28T03:12:51.248Z","dependency_job_id":"17e2a47d-157c-4035-87f0-0da7223e7867","html_url":"https://github.com/sapcc/hermes","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fhermes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fhermes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fhermes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fhermes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sapcc","download_url":"https://codeload.github.com/sapcc/hermes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249514430,"owners_count":21284542,"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":["audit","audit-apis","cadf","golang","openstack"],"created_at":"2024-11-09T03:37:00.977Z","updated_at":"2025-04-18T15:33:45.551Z","avatar_url":"https://github.com/sapcc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Logo and Title --\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\".github/assets/hermes.png\" alt=\"Hermes Logo\" width=\"250\"/\u003e\n  \u003ch1\u003eHermes\u003c/h1\u003e\n  \n  \u003cp\u003e\u003cem\u003eAn OpenStack audit trail service\u003c/em\u003e\u003c/p\u003e\n  \u003cp\u003e\n    \u003ccode\u003eAudit Trail\u003c/code\u003e \u0026nbsp; \u003ccode\u003eOpenStack\u003c/code\u003e \u0026nbsp; \u003ccode\u003eGolang\u003c/code\u003e\n  \u003c/p\u003e\n\n  \n  \u003c!-- Badges --\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/sapcc/hermes/actions/workflows/ci.yaml\"\u003e\n      \u003cimg src=\"https://github.com/sapcc/hermes/actions/workflows/ci.yaml/badge.svg\" alt=\"CI Status\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://goreportcard.com/report/github.com/sapcc/hermes\"\u003e\n      \u003cimg src=\"https://goreportcard.com/badge/github.com/sapcc/hermes\" alt=\"Go Report Card\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://godoc.org/github.com/sapcc/hermes\"\u003e\n      \u003cimg src=\"https://godoc.org/github.com/sapcc/hermes?status.svg\" alt=\"GoDoc\"/\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n  \u003cbr/\u003e\n\u003c/div\u003e\n\n----\n\n**Hermes** is an audit trail service for OpenStack, originally designed for SAP's internal OpenStack Cloud. \n\nHermes is named after the Futurama character, not the Greek god.\n\n----\n\n## Features\n\n- 📜 Central repository for OpenStack audit events\n- 🔐 Identity v3 authentication \u0026 project/domain scoping\n- ⚙️ Integration with cloud-based audit APIs\n- 📈 Exposes Prometheus metrics\n- 🧾 CLI support via [HermesCLI](https://github.com/sapcc/hermescli)\n\n----\n\n# The idea: Audit trail for OpenStack\n\nOpenStack has an audit log through OpenStack Audit Middleware, but no way for customers to view these audit events. Hermes enables \neasy access to audit events on a tenant basis, relying on the ELK stack for storage. Now cloud customers can view their project \nlevel audit events through an API, or as a module in [Elektra](https://github.com/sapcc/elektra), an OpenStack Dashboard.\n\n## Use Cases\n\nThe Audit log can be used by information auditors or cloud based audit APIs to track events for a resource in a domain or project. Support teams can validate when customers communicate problems with cloud services, verify what occurred, and view additional detail about the customer issue.\n\nHermes enables customer access for audit relevant events that occur from OpenStack in an Open Standards CADF Format.\n- [CADF Format](https://www.dmtf.org/sites/default/files/standards/documents/DSP0262_1.0.0.pdf)\n- [CADF Standards](http://www.dmtf.org/standards/cadf)\n\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eDependencies\u003c/strong\u003e\u003c/summary\u003e\n\n- OpenStack\n- [OpenStack Audit Middleware](https://github.com/sapcc/openstack-audit-middleware) - To Generate audit events in a WSGI Pipeline\n- RabbitMQ - To queue audit events from OpenStack\n- Logstash - To transform and route audit events\n- Elasticsearch or Opensearch - To store audit events for the API to query\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eInstallation\u003c/strong\u003e\u003c/summary\u003e\n\nTo install Hermes, you can use the Helm charts available at [SAPCC Helm Charts](https://github.com/sapcc/helm-charts/tree/master/openstack/hermes). These charts provide a simple and efficient way to deploy Hermes in a Kubernetes cluster.\n\nIn addition to the Helm charts, you can also use the following related repositories and projects to further customize and integrate Hermes into your OpenStack environment:\n\nRelated Repositories:\n- [OpenStack Audit Middleware](https://github.com/sapcc/openstack-audit-middleware)\n- [Hermes CLI Command Line Client](https://github.com/sapcc/hermescli)\n- [Hermes Audit Tools for Creation of Events](https://github.com/sapcc/go-bits/tree/master/audittools)\n- [GopherCloud Extension for Hermes Audit](https://github.com/sapcc/gophercloud-sapcc/tree/master/audit/v1)\n- [SAPCC Go Api Declarations](https://github.com/sapcc/go-api-declarations/tree/main/cadf)\n\nRelated Projects:\n- [Keystone Event Notifications](https://docs.openstack.org/keystone/pike/advanced-topics/event_notifications.html)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eSupported Services\u003c/strong\u003e\u003c/summary\u003e\n\n- [Keystone Identity Service](https://docs.openstack.org/keystone/latest/)\n- [Nova Compute Service](https://docs.openstack.org/nova/latest/)\n- [Neutron Network Service](https://docs.openstack.org/neutron/latest/)\n- [Designate DNS Service](https://docs.openstack.org/designate/latest/)\n- [Cinder Block Storage Service](https://docs.openstack.org/cinder/latest/)\n- [Manila Shared Filesystem Service](https://docs.openstack.org/manila/latest/)\n- [Glance Image Service](https://docs.openstack.org/glance/latest/)\n- [Barbican Key Manager Service](https://docs.openstack.org/Barbican/latest/)\n- [Ironic Baremetal Service](https://docs.openstack.org/ironic/latest/)\n- [Octavia Load Balancer Service](https://docs.openstack.org/octavia/latest/)\n- [Limes Quota/Usage Tracking Service](https://github.com/sapcc/limes)\n- [Castellum Vertical Autoscaling Service](https://github.com/sapcc/castellum)\n- [Keppel Container Image Registry Service](https://github.com/sapcc/keppel)\n- [Archer End Point Service](https://github.com/sapcc/archer)\n- Cronus Email Service\n\n\u003c/details\u003e\n\u003c/br\u003e\n\n\u003ch2\u003e Documentation \u003c/h2\u003e\n\n## For users\n\n- [Hermes Users Guide](./docs/users/index.md)\n- [Hermes API Reference](./docs/users/hermes-v1-reference.md)\n\n## For operators\n\n- [Hermes Operators Guide](./docs/operators/operators-guide.md)\n\n## For Audit Clients submitting events\n\n- [Go Bits AuditTools](https://github.com/sapcc/go-bits/tree/master/audittools)\n\nFor detailed usage, refer to the documentation provided in doc.go within the audittools package. This includes examples on how to generate audit events and publish them to a RabbitMQ server.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsapcc%2Fhermes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsapcc%2Fhermes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsapcc%2Fhermes/lists"}