Features:
- Database (postgres) with Encryption at Rest (tink)
- Derivable encryption key.
- Rotatable encription key.
- Blind index as bloom filter for exact match.
- Outbox pattern (kafka + cloudevent + protobuf).
- Query-to-code generator (SQLC).
- HTTP API
- OpenAPI-to-code generator (oapi-codegen).
- Auto Load CA & Leaf TLS certificate.
- mTLS support.
- Opentelemetry (console, otlp http, otlp grpc, and datadog trace provider).
- Code Generator for auto instrumentation (otelwrap)
- Plugable log (console, otel, *testing.T).
- Embed opentelemetry trace_id & span_id.
- Copy logged field to opentelemetry trace.
- Log to multiple target (e.g. console and otel)
- Env config.
- Dockerized.
- CI/CD as Code (dagger)
The packages under pkg
are reusable for importing into other project. Moreover pkg/cmd
can be used to instantiate all the packages using environment variable for quick inclusion.
go get github.com/telkomindonesia/go-boilerplate/pkg
- v0.30.0 introduces major breaking changes to separate pkg as it own go module.
- v0.20.0 introduces major breaking changes as the package structure is completely rewritten.