Skip to content

Commit 104813d

Browse files
committed
Attempt at tests for creating and deleting user
1 parent 63a79a9 commit 104813d

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

.github/workflows/ci.yaml

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,12 @@ jobs:
4747
POSTGRES_PASSWORD: secretpassword
4848
env:
4949
BATON_LOG_LEVEL: debug
50-
BATON_DSN: 'postgres://postgres:secretpassword@localhost:5432/postgres'
51-
CONNECTOR_GRANT: 'grant:entitlement:role:3375:member:role:10'
52-
CONNECTOR_ENTITLEMENT: 'entitlement:role:3375:member'
53-
CONNECTOR_PRINCIPAL: 'role:10'
54-
CONNECTOR_PRINCIPAL_TYPE: 'role'
50+
BATON_DSN: "postgres://postgres:secretpassword@localhost:5432/postgres"
51+
CONNECTOR_GRANT: "grant:entitlement:role:3375:member:role:10"
52+
CONNECTOR_ENTITLEMENT: "entitlement:role:3375:member"
53+
CONNECTOR_PRINCIPAL: "role:10"
54+
CONNECTOR_PRINCIPAL_TYPE: "role"
55+
CONNECTOR_NEW_USER: "testuser"
5556
steps:
5657
- name: Install Go
5758
uses: actions/setup-go@v5
@@ -63,7 +64,7 @@ jobs:
6364
run: sudo apt install postgresql-client
6465
# - name: Import sql into postgres
6566
# env:
66-
# PGPASSWORD: secretpassword
67+
# PGPASSWORD: secretpassword
6768
# run: psql -h localhost --user postgres -f test/ci.sql
6869
- name: Install baton
6970
run: ./scripts/get-baton.sh && mv baton /usr/local/bin
@@ -91,7 +92,30 @@ jobs:
9192
run: ./baton-postgresql && baton grants --entitlement "${{ env.CONNECTOR_ENTITLEMENT }}" --output-format=json | jq --exit-status ".grants[].principal.id.resource == \"${{ env.CONNECTOR_PRINCIPAL }}\""
9293

9394
- name: Create user
94-
run: ./baton-postgresql --create-account-login 'testuser'
95+
run: ./baton-postgresql --create-account-login "${{ env.CONNECTOR_NEW_USER }}"
96+
97+
- name: Check user was created
98+
run: ./baton-postgresql && baton resources -o json | jq -e --arg login "${{ env.CONNECTOR_NEW_USER }}" 'any(.resources[].resource.annotations[]?;.["@type"]=="type.googleapis.com/c1.connector.v2.UserTrait" and .login==$login)'
99+
100+
- name: Fetch user id
101+
shell: bash
102+
run: |
103+
set -eub pipefail
104+
NEW_USER_ID="$(baton resources -o json | jq -e --arg login "${{ env.CONNECTOR_NEW_USER }}" 'any(.resources[].resource.annotations[]?; .["@type"]=="type.googleapis.com/c1.connector.v2.UserTrait" and .login==$login)')"
105+
echo "NEW_USER_ID=$NEW_USER_ID" >> "$GITHUB_ENV"
106+
107+
- name: Grant role to user
108+
run: ./baton-postgresql --grant-entitlement "${{ env.CONNECTOR_ENTITLEMENT }}" --grant-principal "${{ env.NEW_USER_ID }}" --grant-principal-type "${{ env.CONNECTOR_PRINCIPAL_TYPE }}"
109+
110+
- name: Check role was granted
111+
run: ./baton-postgresql && baton grants -e entitlement:role:16390:member -o json | jq -e --arg login "${{ env.CONNECTOR_NEW_USER }}" 'any(.grants[]?; any(.principal.annotations[]?; .["@type"]=="type.googleapis.com/c1.connector.v2.UserTrait" and .login==$login) or any(.grant.principal.annotations[]?; .["@type"]=="type.googleapis.com/c1.connector.v2.UserTrait" and .login==$login))'
112+
113+
- name: Delete user
114+
run: ./baton-postgresql --delete-resource "${{ env.NEW_USER_ID }}" --resource-type "${{ env.CONNECTOR_PRINCIPAL_TYPE }}"
115+
116+
- name: Check user was deleted
117+
run: ./baton-postgresql && baton resources -o json | jq -e --arg login "${{ env.CONNECTOR_NEW_USER }}" 'any(.resources[].resource.annotations[]?;.["@type"]=="type.googleapis.com/c1.connector.v2.UserTrait" and .login==$login) | not'
118+
95119
# TODO: get correct role id using baton CLI
96120
# - name: Rotate credentials for user
97121
# run: ./baton-postgresql --rotate-credentials 'role:16384' --rotate-credentials-type 'role'

0 commit comments

Comments
 (0)