Postgres must be installed as per AshPostgres documentation
Make sure to run mix ash.setup before starting the server to setup the database
This repository combines the below into a single Phoenix/Ash server:
- A backend to store reports generated from our agent system and view them within our dashboard
- An extensible system to map resources available on Steampipe to a monitor-able target
- As an example, here is how we mapped the aws_iam_policy to a target in Elixir
- A polling system to track changes made to these resources and push them to our agent system through SSE if any are detected
- Format of SSE messages can be found on this GitHub gist
- A pass-through REST API endpoint to configure credentials on our steampipe-sidecar component
- The pass-through allows Hachiware to intercept successful credential parsing responses from steampipe-sidecar. The provider with the authenticated credentials will then have its resources monitored for changes
The pre-built Docker image is hosted at https://hub.docker.com/repository/docker/zachareee/hachiware
To start your Phoenix server:
- Run
mix setupto install and setup dependencies - Set the
SIDECAR_HOST,DATABASE_URL,STEAMPIPE_DATABASE_URLenvironment variables -
- Refer to Config Guardians for an example on how to set it up with the required containers
- Start Phoenix endpoint with
mix phx.serveror inside IEx withiex -S mix phx.server
Now you can visit SwaggerUI from your browser to see the API documentation.
Ready to run in production? Please check our deployment guides.
Refer to Config Guardians, which contains the whole system architecture we employ to power Config Guardians
- Official website: https://www.phoenixframework.org/
- Guides: https://hexdocs.pm/phoenix/overview.html
- Docs: https://hexdocs.pm/phoenix
- Forum: https://elixirforum.com/c/phoenix-forum
- Source: https://github.com/phoenixframework/phoenix
