Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
51b2b64
wip: make krane initiates smaller watches
chronark Jan 18, 2026
b849e50
wip: make krane initiates smaller watches
chronark Jan 19, 2026
12fd34e
chore: remove tmp files
chronark Jan 19, 2026
02c1f7a
refactor: make it simpler
chronark Jan 19, 2026
ffd3735
feat: use total ordering
chronark Jan 19, 2026
26ff3b2
merge
chronark Jan 20, 2026
39fc19d
it works again
chronark Jan 20, 2026
c277c0b
Merge branch 'main' into decouple-control-workers
chronark Jan 20, 2026
3769fea
fix: comment
chronark Jan 20, 2026
015bad2
Merge branch 'decouple-control-workers' of github.com:unkeyed/unkey i…
chronark Jan 20, 2026
4200fc5
GitButler Workspace Commit
gitbutler-client Jan 20, 2026
5210c8e
refactor: move restate workflow logic into separate svc/worker
chronark Jan 20, 2026
a2ce41e
Merge branch 'main' of github.com:unkeyed/unkey into chronark/split-r…
chronark Jan 22, 2026
356b1f9
fix: remove cloudflare
chronark Jan 22, 2026
374e889
fix: handle error
chronark Jan 22, 2026
3059d35
refactor: split ctrl into api and worker
chronark Jan 22, 2026
51f54ed
merge: resolve Tiltfile conflict - keep both ctrl-worker and frontline
chronark Jan 22, 2026
78425c9
fix: idk stuff works again
chronark Jan 22, 2026
3ca8148
fix: use vault
chronark Jan 22, 2026
8ff17bf
fix: remove duplicated code
chronark Jan 22, 2026
4a51c28
ci: start correct container
chronark Jan 22, 2026
15bd60a
ci: fix containers
chronark Jan 22, 2026
1fb5fa7
ci: add worker
chronark Jan 22, 2026
507f85f
ci: hack
chronark Jan 22, 2026
6dbe055
ci: sleep
chronark Jan 22, 2026
62f7876
test: use mock
chronark Jan 22, 2026
0f3dda2
Merge branch 'main' into chronark/split-restate-worker
chronark Jan 22, 2026
3e57b63
fix: use vault service in docker
chronark Jan 22, 2026
79cca56
fix: drop unused indices
chronark Jan 22, 2026
0c654a9
fix: mock client is now concurrency safe
chronark Jan 22, 2026
52f396c
Merge branch 'chronark/split-restate-worker' of github.com:unkeyed/un…
chronark Jan 23, 2026
1ebde0f
[autofix.ci] apply automated fixes
autofix-ci[bot] Jan 23, 2026
d7477a0
Update cmd/ctrl/worker.go
chronark Jan 23, 2026
7a53c3e
Update svc/krane/internal/deployment/consts.go
chronark Jan 23, 2026
30470e2
Update svc/ctrl/worker/run.go
chronark Jan 23, 2026
fae4f2a
Update cmd/ctrl/api.go
chronark Jan 23, 2026
53daf4c
Merge branch 'main' into chronark/split-restate-worker
chronark Jan 23, 2026
51e2ac6
fix: flags
chronark Jan 23, 2026
d8af282
Merge branch 'chronark/split-restate-worker' of github.com:unkeyed/un…
chronark Jan 23, 2026
9d46a62
fix: comments
chronark Jan 23, 2026
3730105
ci: nuke ci for the old api
chronark Jan 23, 2026
1158ce8
Merge branch 'main' into chronark/split-restate-worker
chronark Jan 23, 2026
f034656
Merge branch 'main' into chronark/split-restate-worker
chronark Jan 23, 2026
90764f1
Merge branch 'main' into chronark/split-restate-worker
Flo4604 Jan 23, 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/deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,50 +11,6 @@ concurrency:
jobs:
detect_changes:
uses: ./.github/workflows/job_detect_changes.yaml
api_local_test:
name: Test API
uses: ./.github/workflows/job_test_api_local.yaml
api_preview_deployment:
needs:
- api_local_test
uses: ./.github/workflows/job_deploy_api_staging.yaml
secrets:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
api_preview_test:
needs:
- api_preview_deployment
uses: ./.github/workflows/job_test_api_staging.yaml
with:
UNKEY_BASE_URL: https://preview-api.unkey.dev
secrets:
DATABASE_HOST: ${{ secrets.DATABASE_HOST }}
DATABASE_USERNAME: ${{ secrets.DATABASE_USERNAME }}
DATABASE_PASSWORD: ${{ secrets.DATABASE_PASSWORD }}
CLICKHOUSE_URL: ${{ secrets.CLICKHOUSE_URL }}
api_canary_deployment:
needs:
- api_local_test
- api_preview_test
uses: ./.github/workflows/job_deploy_api_canary.yaml
secrets:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
api_canary_test:
needs:
- api_canary_deployment
uses: ./.github/workflows/job_test_api_canary.yaml
with:
UNKEY_BASE_URL: https://canary.unkey.dev
secrets:
DATABASE_HOST: ${{ secrets.DATABASE_HOST }}
DATABASE_USERNAME: ${{ secrets.DATABASE_USERNAME }}
DATABASE_PASSWORD: ${{ secrets.DATABASE_PASSWORD }}
CLICKHOUSE_URL: ${{ secrets.CLICKHOUSE_URL }}
api_production_deployment:
needs:
- api_canary_test
uses: ./.github/workflows/job_deploy_api_production.yaml
secrets:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
mintlify_deployment:
runs-on: depot-ubuntu-24.04-4
needs:
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/job_bazel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@ jobs:

# Running containers is temporary until we moved them inside of bazel,
# at that point they are only created if they are actually needed
- name: Start for containers
run: docker compose -f ./dev/docker-compose.yaml up s3 clickhouse kafka mysql ctrl restate -d --wait

- name: Start containers
run: docker compose -f ./dev/docker-compose.yaml up s3 clickhouse kafka mysql -d --wait
- name: Run tests
run: bazel test //... --test_output=errors
13 changes: 0 additions & 13 deletions .github/workflows/job_detect_changes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@ name: Detect Changes
on:
workflow_call:
outputs:
api:
description: "Whether API has changed"
value: ${{ jobs.build.outputs.api }}
dashboard:
description: "Whether Dashboard has changed"
value: ${{ jobs.build.outputs.dashboard }}
Expand Down Expand Up @@ -52,16 +49,6 @@ jobs:
with:
filters: |
# API application and its direct dependencies
api:
- 'web/apps/api/**'
- 'web/internal/db/**'
- 'web/internal/encoding/**'
- 'web/internal/encryption/**'
- 'web/internal/hash/**'
- 'web/internal/id/**'
- 'web/internal/keys/**'
- 'web/internal/validation/**'
- 'web/internal/vault/**'

# Dashboard application and its dependencies
dashboard:
Expand Down
49 changes: 0 additions & 49 deletions .github/workflows/job_test_api_canary.yaml

This file was deleted.

61 changes: 0 additions & 61 deletions .github/workflows/job_test_api_local.yaml

This file was deleted.

53 changes: 0 additions & 53 deletions .github/workflows/job_test_api_staging.yaml

This file was deleted.

5 changes: 0 additions & 5 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,6 @@ jobs:
if: ((github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event_name != 'pull_request') && needs.detect_changes.result == 'success' && (needs.detect_changes.outputs.packages == 'true' || needs.detect_changes.outputs.dependencies == 'true')
needs: [detect_changes]
uses: ./.github/workflows/job_test_web.yaml
test_api:
name: Test API
if: ((github.event_name == 'pull_request' && github.event.pull_request.draft == false) || github.event_name != 'pull_request') && needs.detect_changes.result == 'success' && (needs.detect_changes.outputs.api == 'true' || needs.detect_changes.outputs.packages == 'true')
needs: [detect_changes]
uses: ./.github/workflows/job_test_api_local.yaml
bazel:
name: Bazel
uses: ./.github/workflows/job_bazel.yaml
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ pull: ## Pull latest Docker images for services

.PHONY: up
up: pull ## Start all infrastructure services
@docker compose -f ./dev/docker-compose.yaml up -d planetscale mysql redis clickhouse s3 otel kafka restate ctrl --wait
@docker compose -f ./dev/docker-compose.yaml up -d planetscale mysql redis clickhouse s3 otel kafka restate ctrl-api --wait

.PHONY: clean
clean: ## Stop and remove all services with volumes
Expand Down Expand Up @@ -86,7 +86,7 @@ generate: generate-sql ## Generate code from protobuf and other sources

.PHONY: test
test: ## Run tests with bazel
docker compose -f ./dev/docker-compose.yaml up -d mysql clickhouse s3 kafka restate ctrl --wait
docker compose -f ./dev/docker-compose.yaml up -d mysql clickhouse s3 kafka --wait
bazel test //...
make clean-docker-test

Expand Down
10 changes: 8 additions & 2 deletions cmd/ctrl/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,20 @@ load("@rules_go//go:def.bzl", "go_library")

go_library(
name = "ctrl",
srcs = ["main.go"],
srcs = [
"api.go",
"doc.go",
"main.go",
"worker.go",
],
importpath = "github.com/unkeyed/unkey/cmd/ctrl",
visibility = ["//visibility:public"],
deps = [
"//pkg/cli",
"//pkg/clock",
"//pkg/tls",
"//pkg/uid",
"//svc/ctrl",
"//svc/ctrl/api",
"//svc/ctrl/worker",
],
)
Loading