Skip to content

feat(google): scaffold sentinel-google service#90

Merged
BK1031 merged 2 commits into
mainfrom
bk1031/google-service-scaffold
Jun 23, 2026
Merged

feat(google): scaffold sentinel-google service#90
BK1031 merged 2 commits into
mainfrom
bk1031/google-service-scaffold

Conversation

@BK1031

@BK1031 BK1031 commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

First PR of the Sentinel-group → Google-Group sync feature. Stands up the new service skeleton + build pipeline — no Google API calls or sync logic yet.

What's here

  • New google/ module mirroring the saml/oauth service shape: main.go, config/ (+verify, banner), database/ (connection only, no models yet), pkg/{kerbecs,logger,sentinel}, and a gin api/ layer with auth middleware + /google/ping
  • Boots → bootstraps its bearer JWT from core via INTERNAL_BOOTSTRAP_SECRET → serves ping
  • Registers the sentinel-google internal service account in core/jobs/init.go so the bootstrap exchange is allowed
  • docker-compose.yml entry (port 9995) + google_gopath volume
  • Build pipeline: .github/workflows/google.yml (mirrors saml.yml) builds/publishes ghcr.io/gaucho-racing/sentinel-google; scripts/release.sh gains google in GO_SERVICES (version bump) + IMAGES

Not in this PR (later slices)

  • group_google_binding model + CRUD API
  • Google Admin SDK Directory client (service account + domain-wide delegation)
  • Reconcile engine (MEMBER-role authority model) + cron
  • Infra PR: k8s google.yaml manifest, kustomization entry, and deploy.yml wiring (coupled — deploy.yml bumps kustomization tags that don't exist until the manifest lands), kerbecs gateway route for inbound calls

Verification

  • go build ./... + go vet ./... pass in the new module
  • core builds with the SA addition; compose + google.yml YAML validate

Design recap

One-way sync, Sentinel = source of truth. Per group: mirror Sentinel members into the mapped Google Group as role MEMBER; manually-added people are OWNER/MANAGER and never touched. Reconcile manages only MEMBER-role members.

BK1031 added 2 commits June 22, 2026 17:20
Boots, bootstraps its bearer JWT from core, and serves /google/ping.
Mirrors the saml/oauth service skeleton (config, db, kerbecs resolver,
sentinel client, gin router + auth middleware). Registers the
sentinel-google internal SA on core and adds a docker-compose entry.

First slice of the Sentinel-group -> Google-Group sync service; the
binding model, Directory API client, and reconcile engine follow in
later PRs.
Add .github/workflows/google.yml (mirrors saml.yml) to build and
publish ghcr.io/gaucho-racing/sentinel-google, and add google to
release.sh GO_SERVICES (version bump) and IMAGES (image tag). deploy.yml
is deferred to the infra PR since it bumps the kustomization image tags
that don't exist until the k8s manifest lands.
@BK1031 BK1031 merged commit dd1ff42 into main Jun 23, 2026
18 checks passed
@BK1031 BK1031 deleted the bk1031/google-service-scaffold branch June 23, 2026 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant