Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
14d701f
chore: init v5 branch
BK1031 Jan 17, 2026
aba3aac
chore: init core
BK1031 Jan 17, 2026
7cc7af6
chore: setup sentinel-core with go 1.26, docker-compose, and air hot …
BK1031 Feb 24, 2026
5b32150
fix(ci): replace deprecated go get with go mod download
BK1031 Feb 24, 2026
19782e5
ci: add multi-arch publish workflow for sentinel-core
BK1031 Feb 24, 2026
ac6ba2a
ci: rename workflows to core-build and core-publish
BK1031 Feb 24, 2026
65e4094
ci: consolidate to single core.yml workflow
BK1031 Feb 24, 2026
1b421da
feat(core): add auth entity models and database migrations
BK1031 Mar 11, 2026
ef5ea45
feat(core): add entity and JWT services
BK1031 Mar 11, 2026
ff4e2e6
feat(core): add email auth service and fix entity email lookup
BK1031 Mar 11, 2026
5f8f485
feat(core): add JWKS endpoint and Bearer token auth middleware
BK1031 Mar 11, 2026
94cddd5
feat(core): add JWT token API endpoints and refactor routing
BK1031 Mar 16, 2026
11746b9
refactor(core): generic token service with custom claims support
BK1031 Mar 16, 2026
12aead7
feat(core): add User and ServiceAccount models, refactor Entity
BK1031 Mar 18, 2026
eb7093f
feat(core): add Group and GroupMember models
BK1031 Mar 18, 2026
38f14b8
feat(core): add GroupOwner model
BK1031 Mar 18, 2026
f7c1952
feat(core): add GroupJoinRequest and GroupJoinRequestComment models
BK1031 Mar 18, 2026
e0f50e6
feat(core): add expiration fields to GroupJoinRequest
BK1031 Mar 18, 2026
426ad29
feat(core): add updated_at to Group
BK1031 Mar 19, 2026
deccc8b
feat(core): add Application model
BK1031 Mar 19, 2026
6cb1083
feat(core): add User/ServiceAccount to Entity, add icon_url to Applic…
BK1031 Mar 19, 2026
fa60ce4
feat(core): add ApplicationGroup join table and Groups to User
BK1031 Mar 24, 2026
ee7608d
feat(core): add user service functions
BK1031 Mar 24, 2026
5ada5ed
feat(core): add group service functions
BK1031 Mar 24, 2026
5861660
feat(core): add group member and owner service functions
BK1031 Mar 26, 2026
3cdee0a
feat(core): add group join request service functions
BK1031 Mar 26, 2026
db29c5e
feat(core): add Groups to ServiceAccount, add service account service…
BK1031 Mar 26, 2026
ac7f86b
feat(core): add application and application group service functions
BK1031 Mar 26, 2026
54ec547
feat(core): add user API endpoints
BK1031 Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 0 additions & 44 deletions .github/workflows/build.yml

This file was deleted.

153 changes: 153 additions & 0 deletions .github/workflows/core.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
name: core
run-name: Triggered by ${{ github.event_name }} to ${{ github.ref }} by @${{ github.actor }}

on:
push:
branches:
- "**"
tags:
- "**"

jobs:
build:
runs-on: ${{ matrix.runner }}
name: Build ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
include:
- platform: linux/amd64
runner: ubuntu-24.04
- platform: linux/arm64
runner: ubuntu-24.04-arm

permissions:
contents: read
packages: write

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Generate platform pair
id: platform
run: |
platform=${{ matrix.platform }}
echo "pair=${platform//\//-}" >> $GITHUB_OUTPUT

- name: Build and push by digest
id: build
uses: docker/build-push-action@v5
with:
context: core
platforms: ${{ matrix.platform }}
outputs: type=image,name=ghcr.io/gaucho-racing/sentinel-core,push-by-digest=true,name-canonical=true,push=true
cache-from: type=gha,scope=build-${{ steps.platform.outputs.pair }}
cache-to: type=gha,scope=build-${{ steps.platform.outputs.pair }},mode=max

- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-${{ steps.platform.outputs.pair }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1

merge:
runs-on: ubuntu-latest
name: Merge manifests
needs: build

permissions:
contents: read
packages: write

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true

- name: Download digests
uses: actions/download-artifact@v4
with:
path: /tmp/digests
pattern: digests-*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Check if this commit has a release tag
id: release
run: |
tag=$(git tag --points-at HEAD | grep '^v' | head -n1)
if [ -n "$tag" ]; then
echo "Found tag: $tag"
if gh release view "$tag" --json tagName > /dev/null 2>&1; then
echo "release_tag=$tag" >> $GITHUB_OUTPUT
echo "is_release=true" >> $GITHUB_OUTPUT
exit 0
fi
fi
echo "is_release=false" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Generate tag list
id: tags
shell: bash
run: |
TAGS="type=sha"

if [ "${GITHUB_REF_TYPE}" = "branch" ] && [ "${GITHUB_REF_NAME}" = "main" ]; then
TAGS="${TAGS}\ntype=raw,value=latest"
fi

if [ "${{ steps.release.outputs.is_release }}" = "true" ]; then
CLEAN_TAG=$(echo "${{ steps.release.outputs.release_tag }}" | sed 's/^v//')
TAGS="${TAGS}\ntype=raw,value=${CLEAN_TAG}"
fi

echo -e "tags<<EOF\n$TAGS\nEOF" >> $GITHUB_OUTPUT

- name: Extract image metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/gaucho-racing/sentinel-core
tags: ${{ steps.tags.outputs.tags }}

- name: Create manifest list and push
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf 'ghcr.io/gaucho-racing/sentinel-core@sha256:%s ' *)

- name: Inspect image
run: |
docker buildx imagetools inspect ghcr.io/gaucho-racing/sentinel-core:${{ steps.meta.outputs.version }}
31 changes: 0 additions & 31 deletions .github/workflows/tests.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ drive-service-account.json
# Go workspace file
go.work

# Air hot reload
tmp/

coverage.html

jwtRS256.key
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2024 Gaucho Racing
Copyright (c) 2026 Gaucho Racing

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ clean:
rm *.out
rm coverage.html

run:
chmod +x scripts/run.sh
./scripts/run.sh
run-core:
chmod +x scripts/run-core.sh
./scripts/run-core.sh

keygen:
chmod +x scripts/keygen.sh
Expand Down
48 changes: 0 additions & 48 deletions commands/alumni.go

This file was deleted.

78 changes: 0 additions & 78 deletions commands/drive.go

This file was deleted.

Loading
Loading