@@ -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
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
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