summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-10 17:49:29 -0600
committermo khan <mo@mokhan.ca>2025-07-10 17:49:29 -0600
commitef572ae666732e87a35417710669ce88233a754a (patch)
tree3cc32004dee9600014417d404dbe01ac0e1faca9 /Makefile
parent8417a15087cc6f42c77fe070011ac2207f8d852d (diff)
parent6721aaffa33894624c87a54f4ed10eccd3c080e5 (diff)
Merge branch 'entities' into 'main'
Use a static ACL file(s) to make authorization decisions See merge request gitlab-org/software-supply-chain-security/authorization/authzd!6
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile45
1 files changed, 36 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 701b2422..1c1bff8d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,19 +1,30 @@
-PROJECT_NAME := $(shell basename $(shell pwd))# {{{}}}
+AUTHZD_BIN := bin/authzd
+CLI_BIN := bin/cli
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD | sed 's/\//_/g')
+PROJECT_NAME := $(shell basename $(shell pwd))
IMAGE_TAG := $(PROJECT_NAME):$(GIT_BRANCH)
.PHONY: build check test run clean fmt lint doc vendor
-.PHONY: build-image run-image health-check list-services test-image
+.PHONY: build-image run-image
+.PHONY: health-check list-services
+.PHONY: staging-entities production-entities
setup:
mise install
mise exec go -- go install github.com/xlgmokha/minit@latest
- mise exec rust -- rustup component add clippy rustfmt
+ mise exec rust -- rustup component add clippy rustfmt rust-analyzer
mise exec rust -- cargo install --locked cedar-policy-cli
+$(AUTHZD_BIN): $(shell find src -name "*.rs" 2>/dev/null) Cargo.toml
+ @cargo build --bin authzd --offline
+ @cp target/debug/authzd bin/authzd
+
+$(CLI_BIN): $(shell find src -name "*.rs" 2>/dev/null) Cargo.toml
+ @cargo build --bin cli --offline
+ @cp target/debug/cli bin/cli
+
# Cargo targets
-build:
- @cargo build --offline
+build: $(AUTHZD_BIN) $(CLI_BIN)
check:
@cargo check
@@ -22,20 +33,20 @@ test:
@cargo test
run: build
- @cp target/debug/authzd bin/authzd
@minit
clean:
+ @rm -f $(AUTHZD_BIN) $(CLI_BIN)
@cargo clean
fmt:
@cargo fmt
- @cedar format --policies etc/authzd/policy0.cedar --write
+ @for policy in etc/authzd/*.cedar; do cedar format --policies $$policy --write; done
lint:
@cargo clippy
- @cedar check-parse --policies etc/authzd/policy0.cedar
- @cedar format --policies etc/authzd/policy0.cedar --check
+ @for policy in etc/authzd/*.cedar; do cedar check-parse --policies $$policy; done
+ @for policy in etc/authzd/*.cedar; do cedar format --policies $$policy --check; done
doc:
@cargo doc --open
@@ -56,3 +67,19 @@ health-check:
list-services:
@grpcurl -plaintext localhost:20000 list
+
+# entities targets
+check-gitlab-token:
+ @if [ -z "$$GITLAB_TOKEN" ]; then \
+ echo "Error: GITLAB_TOKEN environment variable is required"; \
+ echo "Set it with: export GITLAB_TOKEN=your_token"; \
+ exit 1; \
+ fi
+
+staging-entities: $(CLI_BIN) check-gitlab-token
+ @$(CLI_BIN) generate --host https://staging.gitlab.com --project authorization/sparkle/team --output etc/authzd/staging.gitlab.com/authorization/sparkle/team/entities.json
+
+production-entities: $(CLI_BIN) check-gitlab-token
+ @$(CLI_BIN) generate --project gitlab-org/gitlab --output etc/authzd/gitlab.com/gitlab-org/gitlab/entities.json
+ @$(CLI_BIN) generate --project gitlab-org/software-supply-chain-security/authorization/authzd --output etc/authzd/gitlab.com/gitlab-org/software-supply-chain-security/authorization/authzd/entities.json
+ @$(CLI_BIN) generate --project gitlab-org/software-supply-chain-security/authorization/sparkled --output etc/authzd/gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/entities.json