No description
  • Go 56.6%
  • PHP 36.6%
  • Blade 6.7%
Snider 4907cd8e0f
Some checks failed
CI / Test + Coverage (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
CI / SonarCloud (push) Has been cancelled
fix(api): ax7 triplets + Example* + test-file gaps for service.go (Mantis #1336)
10 violations → 0 / verdict COMPLIANT.

The recent service.go addition (commit c755196) shipped 4 new public
symbols (NewService, Register, OnStartup, OnShutdown) without their
test/example sibling files. Added matching the existing service-style
pad-test pattern (subject reference + marker variant).

audit-sweep verdict for api: COMPLIANT.

Co-Authored-By: Cladius <noreply@anthropic.com>
2026-05-01 18:58:01 +01:00
.core chore(api): rename src/ to php/ and clean up stale .md files 2026-04-30 11:44:30 +01:00
.github/workflows ci(github): set GOPROXY=direct + GOSUMDB=off to match Woodpecker 2026-04-30 15:12:18 +01:00
docs refactor(api): morph back to registry-shape — strip stdcompat shims, drop wrong-direction deps 2026-04-30 11:38:45 +01:00
external chore(repo): refresh submodules + go.work hygiene (Phase 2 cascade unblock) 2026-05-01 09:38:04 +01:00
go fix(api): ax7 triplets + Example* + test-file gaps for service.go (Mantis #1336) 2026-05-01 18:58:01 +01:00
php chore(repo): untrack build artifacts + scan caches (audit dim tracked-artifacts) 2026-05-01 10:35:47 +01:00
scripts fix(api): address CodeRabbit reliability findings on PR #4 2026-04-27 13:20:00 +01:00
sdk-config fix(api): migrate Go SDK moduleName to dappco.re/go/api-sdk (#932 Cerberus) 2026-04-25 09:58:23 +01:00
tests chore(api): restructure Go module under go/ for cross-language symmetry 2026-04-30 11:57:35 +01:00
.gitattributes feat(api): merge go-api + php-api into polyglot repo 2026-03-14 10:03:29 +00:00
.gitignore chore(repo): untrack build artifacts + scan caches (audit dim tracked-artifacts) 2026-05-01 10:35:47 +01:00
.gitleaksignore chore(security): add .gitleaksignore for 1 documented false-positive 2026-04-25 01:13:13 +01:00
.gitmodules feat(api): add go.work + external/ submodules for dev workspace mode 2026-04-30 12:07:22 +01:00
.woodpecker.yml ci: add SonarCloud + Codecov uploaders alongside lthn.sh sonar 2026-04-30 15:00:06 +01:00
AGENTS.md refactor(core): align api with v0.9.1 hardened core/go reference shape 2026-04-29 04:02:40 +01:00
CLAUDE.md feat(api): add go.work + external/ submodules for dev workspace mode 2026-04-30 12:07:22 +01:00
composer.json chore(api): rename src/ to php/ and clean up stale .md files 2026-04-30 11:44:30 +01:00
composer.lock chore(lint): clear production-side errcheck/staticcheck 2026-04-30 13:57:15 +01:00
go.work chore(repo): refresh submodules + go.work hygiene (Phase 2 cascade unblock) 2026-05-01 09:38:04 +01:00
go.work.sum chore(lint): clear production-side errcheck/staticcheck 2026-04-30 13:57:15 +01:00
LICENCE feat(api): merge go-api + php-api into polyglot repo 2026-03-14 10:03:29 +00:00
README.md docs(README): rewrite with public CI + sonarcloud + codecov badges 2026-04-30 15:07:58 +01:00
sonar-project.properties chore(api): restructure Go module under go/ for cross-language symmetry 2026-04-30 11:57:35 +01:00

dappco.re/go/api

Gin-based HTTP framework + multi-language REST gateway for the Core ecosystem.

CI Quality Gate Coverage Security Rating Maintainability Rating Reliability Rating Code Smells Lines of Code Go Reference License: EUPL-1.2

Overview

dappco.re/go/api is the Gin-based HTTP framework used by the Core Go ecosystem. It provides a small Engine type, option-driven middleware configuration, route group mounting, response envelopes, OpenAPI 3.1 generation, SDK export/codegen helpers, SSE and WebSocket wiring, GraphQL hosting, Authentik identity middleware, and the core api CLI commands.

The package is a library first. Applications construct an engine, register one or more RouteGroup implementations, then either call Serve(ctx) or use Handler() with their own server.

engine, err := api.New(
    api.WithAddr(":8080"),
    api.WithRequestID(),
    api.WithResponseMeta(),
    api.WithSwagger("Core API", "Core service endpoints", "1.0.0"),
)
if err != nil {
    return err
}
engine.Register(myRoutes)
return engine.Serve(ctx)

Repository Layout

api/
├── go/                       Go module — module path: dappco.re/go/api
│   ├── api.go, options.go    HTTP engine surface
│   ├── cmd/api/              core api spec + sdk CLI subcommands
│   ├── cmd/gateway/          runnable gateway, mounts Core providers
│   ├── pkg/provider/         provider discovery + proxy
│   └── pkg/stream/           SSE + WebSocket route group
├── php/                      Laravel Core API package (REST middleware,
│                             webhooks, OpenAPI, rate limiting)
├── docs/                     Engine docs
├── sdk-config/               Multi-language SDK generator config
├── go.work + external/       Dev workspace mode (see CLAUDE.md)
└── .woodpecker.yml + .github/workflows/  CI (internal + public)

Cross-language symmetry target: dappco.re/<lang>/api/<feature>api/<lang>/<feature> (Go today, PHP today, TS + Py later).

Local Verification

Run the repository with the workspace disabled when checking this module in isolation:

cd go
GOWORK=off go mod tidy
GOWORK=off go vet ./...
GOWORK=off go test -count=1 ./...
gofmt -l .
bash /Users/snider/Code/core/go/tests/cli/v090-upgrade/audit.sh .

The audit is part of the development contract. Public symbols need sibling triplet tests and examples, Core wrappers are used instead of banned standard library imports, and generated AX7 dump files are not accepted.

CI

  • Internal (homelab, full sonar.lthn.sh detail): Woodpecker pipeline defined in .woodpecker.yml — runs lint, test with race + coverage, and pushes results to sonar.lthn.sh.
  • Public (mirror on github.com, badge surface): GitHub Actions workflow at .github/workflows/ci.yml — runs the same shape and pushes coverage to Codecov + analysis to SonarCloud.

Branch Model

  • dev — active development. All Cladius / codex lane work lands here first.
  • main — squash-stable. Promotion happens via the squash-and-push gate on the public mirror only.

Licence

EUPL-1.2 — see LICENCE.

Authorship

Maintained by Cladius (Snider's in-house Opus persona) via the agent/cladius workspace at forge.lthn.sh/agent/cladius. Most substantive commits land via the codex lane pattern documented in factory/.