{"id":22994646,"url":"https://github.com/cloudoperators/heureka","last_synced_at":"2026-02-27T15:22:06.960Z","repository":{"id":246507473,"uuid":"792287733","full_name":"cloudoperators/heureka","owner":"cloudoperators","description":"Security and compliance management","archived":false,"fork":false,"pushed_at":"2026-02-19T14:29:25.000Z","size":5288,"stargazers_count":7,"open_issues_count":54,"forks_count":3,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-02-19T14:31:25.070Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/cloudoperators.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-26T11:06:44.000Z","updated_at":"2026-02-17T16:27:17.000Z","dependencies_parsed_at":"2025-11-12T12:04:16.288Z","dependency_job_id":null,"html_url":"https://github.com/cloudoperators/heureka","commit_stats":null,"previous_names":["cloudoperators/heureka"],"tags_count":86,"template":false,"template_full_name":"cloudoperators/repository-template","purl":"pkg:github/cloudoperators/heureka","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudoperators%2Fheureka","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudoperators%2Fheureka/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudoperators%2Fheureka/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudoperators%2Fheureka/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudoperators","download_url":"https://codeload.github.com/cloudoperators/heureka/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudoperators%2Fheureka/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29781197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T10:45:18.109Z","status":"ssl_error","status_checked_at":"2026-02-24T10:45:09.911Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-12-15T05:19:36.168Z","updated_at":"2026-02-24T12:00:52.239Z","avatar_url":"https://github.com/cloudoperators.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Heureka\n\n[![REUSE status](https://api.reuse.software/badge/github.com/cloudoperators/heureka)](https://api.reuse.software/info/github.com/cloudoperators/heureka)\n\n\n**Heureka** is a Security Posture Management tool designed to manage security issues in a cloud operating system. \n\nIts primary focus is remediation management of security issues such as vulnerabilities, security events, and policy violations while ensuring compliance and auditability.\n\n\n## Value Propositions\n\n**1. Enhanced Visibility and Security Posture**\n\nA holistic view of the technology landscape, enabling proactive identification and tracking of security issues.\n\n**2. Streamlined Security Operations**\n\nCentrally manage security posture, automate patch management, enforce consistent configurations, and improve threat detection with SIEM integration.\n\n**3. Enhanced Compliance, and Auditability**\n\nFacilitate compliance by tracking remediation progress and providing a complete audit trail (evidence) with detailed documentation of state changes and actions taken.\n\n\n## Architecture \u0026 Design\n\nFor a detailed understanding of Heureka's architecture and design, refer to the following resources:\n\n- [Heureka Product Design Document](docs/product_design_documentation.md): This document provides a general overview, a glossary of terms, and user personas.\n- [Entity Relationship Documentation](docs/entity_relationships.md): This document outlines the core entities within Heureka and how they interact.\n- [High-Level Architecture Diagram](https://github.com/cloudoperators/heureka/blob/main/docs/product_design_documentation.md#high-level-features): This provides a visual representation of the overall system architecture.\n- [High-Level Features](https://github.com/cloudoperators/heureka/blob/main/docs/product_design_documentation.md#high-level-features): A high-level overview of Heureka's functionalities.\n\n## Requirements and Setup\n\nThe application can be configured using environment variables. These variables are stored in a `.env` file at the root of the project.\nFor configuring tests, there is a separate `.test.env` file.\n\nHere's a basic example of what the .env file could look like:\n\n```\nDB_USER=my_username\nDB_PASSWORD=my_password\nDB_ROOT_PASSWORD=my_password\nDB_NAME=heureka\nDB_ADDRESS=localhost\nDB_PORT=3306\nDB_SCHEMA=internal/database/mariadb/init/schema.sql\n\nDB_CONTAINER_IMAGE=mariadb:latest\n\nDOCKER_IMAGE_REGISTRY=hub.docker.com\n\nDOCKER_CREDENTIAL_STORE=docker-credential-desktop\n\nLOG_PRETTY_PRINT=true\n\nSEED_MODE=false\n```\n\nTo enable JWT token authentication, define `AUTH_TOKEN_SECRET` environment variable. Those variable is read by application on startup to start token validation middleware.\n\n### Docker\n\nThe `docker-compose.yml` file defines two profiles: `db` for the `heureka-db` service and `heureka` for the `heureka-app` service.\nTo start a specific service with its profile, use the --profile option followed by the profile name.\n\nFor example, to start the heureka-db service, run:\n```\ndocker-compose --profile db up\n```\n\nAnd to start the heureka-app service, run:\n```\ndocker-compose --profile heureka up\n```\n\nTo start both services at the same time, run:\n```\ndocker-compose --profile db --profile heureka up\n```\n\n### Makefile\n\nThe application can be started by using the provided Makefile:\n\n```\nmake start-all-heureka\n```\n\n### Devcontainers\n\nDevcontainers is a new standard for development environments based on (docker)\n[devcontainer](./.devcontainer).\n\nAt the moment devcontainers are supported by Visual Studio Code and IDEA IDEs.\n\nFor Microsoft Visual Studio code, install the remote container extension via\nCtrl-P and this command:\n\n        ext install ms-vscode-remote.remote-containers\n\nWhen opening the root folder in Visual Studio code a prompt will ask you to\nopen the project in a dev container, which you should.\n\nOnce inside the devcontainer the provided launch.json is configured to allow\nlaunching heureka and running the unit and integration tests.\n\nAt the moment there is a known issue with the permissions of the .mariadb-dev\nfolder. This folder has to be deleted every time after using the devcontainers.\nUse the following command in the root folder of heureka:\n\n    sudo rm -rf .mariadb-dev\n\n\n### Tests\n\n#### Mockery\n\nHeureka uses [Mockery](https://vektra.github.io/mockery/) for building Mocks based on defined interfaces for the purpose of Unit-Testing.\n\nThe Makefile/Dockerfile take care of installing mockery via\n\n    go install github.com/vektra/mockery/v2@v2.46.3\n\n#### Using Ginkgo\n\nHeureka uses [Ginkgo](https://onsi.github.io/ginkgo/) for behavior-driven development (BDD) style tests. In the current project setup, tests are organized into three different directories, each serving a specific purpose:\n\n- End-to-End Tests: These tests are located in the ./internal/e2e directory. End-to-end tests are designed to test the flow of an application from start to finish and ensure all integrated pieces of an application function as expected together.\n\n- Application Layer Tests: These tests resides in the ./internal/app directory. Application layer tests focus on testing the application's behavior, such as handling requests and responses, executing appropriate logic, and more.\n\n- Database Tests: These tests are found in the ./internal/database/db directory. Database tests ensure that the application correctly interacts with the database. They test database queries, updates, deletions, and other related operations.\n\nRun all tests:\n```\nginkgo -r\n```\n\nRun end-to-end tests:\n```\nginkgo ./internal/e2e\n```\n\nRun application tests:\n```\nginkgo ./internal/app\n```\n\nRun database tests:\n```\nginkgo ./internal/database/mariadb\n```\n\nThe ginkgo `-focus` allows using a regular expression to run a specific test:\n```\nginkgo -focus=\"Getting Services\" ./internal/database/mariadb\n```\nIf the test block you're trying to run depends on `BeforeEach`, `JustBeforeEach`, or `Describe` blocks that aren't being run when you use the `-focus` flag, this could cause the test to fail.\n\n## Support, Feedback, Contributing\n\nThis project is open to feature requests/suggestions, bug reports etc. via [GitHub issues](https://github.com/SAP/\u003cyour-project\u003e/issues). Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our [Contribution Guidelines](CONTRIBUTING.md).\n\n## Security / Disclosure\nIf you find any bug that may be a security problem, please follow our instructions at [in our security policy](https://github.com/SAP/\u003cyour-project\u003e/security/policy) on how to report it. Please do not create GitHub issues for security-related doubts or problems.\n\n## Code of Conduct\n\nWe as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its [Code of Conduct](https://github.com/SAP/.github/blob/main/CODE_OF_CONDUCT.md) at all times.\n\n## Licensing\n\nCopyright 2025 SAP SE or an SAP affiliate company and Heureka contributors. Please see our [LICENSE](LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/cloudoperators/heureka).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudoperators%2Fheureka","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudoperators%2Fheureka","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudoperators%2Fheureka/lists"}