|
1 | 1 | version: '1.0'
|
2 | 2 | kind: step-type
|
3 | 3 | metadata:
|
4 |
| - version: 1.2.3 |
| 4 | + version: 1.3.0 |
5 | 5 | name: obtain-oidc-id-token
|
6 | 6 | description: >-
|
7 | 7 | Obtain ID token from Codefresh OIDC Provider
|
|
84 | 84 | "AUDIENCE": {
|
85 | 85 | "type": "string",
|
86 | 86 | "description": "the audience of the ID token. For multiple audiences, use a comma-separated list. Defaults to the address of the Codefresh platform instance (For SaaS, https://g.codefresh.io)"
|
| 87 | + }, |
| 88 | + "TTL": { |
| 89 | + "type": "number", |
| 90 | + "description": "TODO" |
87 | 91 | }
|
88 | 92 | }
|
89 | 93 | }
|
@@ -111,23 +115,47 @@ spec:
|
111 | 115 | shell: bash
|
112 | 116 | environment:
|
113 | 117 | - 'AUDIENCE=${{AUDIENCE}}'
|
| 118 | + - 'TTL=${{TTL}}' |
114 | 119 | commands:
|
115 | 120 | - |
|
116 | 121 | URL="$CF_OIDC_REQUEST_URL"
|
117 | 122 |
|
| 123 | + echo "vasil url: ${URL}" |
| 124 | + |
118 | 125 | # This means that audience was provided by the user
|
119 | 126 | if [ -z "$(echo "$AUDIENCE" | grep '${{AUDIENCE')" ]; then
|
120 | 127 | ENCODED_AUDIENCE=$(echo -n "$AUDIENCE" | jq -s -R -r '@uri')
|
121 | 128 | URL="$URL?audience=$ENCODED_AUDIENCE"
|
122 | 129 | fi
|
123 | 130 |
|
| 131 | + # This means that audience was provided by the user |
| 132 | + if [ -z "$(echo "$TTL" | grep '${{TTL')" ]; then |
| 133 | + # ENCODED_AUDIENCE=$(echo -n "$AUDIENCE" | jq -s -R -r '@uri') |
| 134 | + |
| 135 | + # TODO: don't use ? if audience was already added |
| 136 | + URL="$URL?ttl=$TTL" |
| 137 | + fi |
| 138 | + |
| 139 | + echo "vasil url: ${URL}" |
| 140 | + |
124 | 141 | RESPONSE=$(curl -H "Authorization: $CF_OIDC_REQUEST_TOKEN" "$URL")
|
| 142 | + |
| 143 | + echo "vasil response: ${RESPONSE}" |
| 144 | + |
125 | 145 | ID_TOKEN=$(echo "$RESPONSE" | jq -r ".id_token")
|
126 | 146 |
|
| 147 | + echo "vasil token: ${ID_TOKEN}" |
| 148 | + |
127 | 149 | if [ -z "$ID_TOKEN" ] || [ "$ID_TOKEN" = "null" ]; then
|
| 150 | + echo "vasil exit flow" |
| 151 | + |
128 | 152 | echo "Failed to obtain ID token; API response:"
|
129 | 153 | echo "$RESPONSE"
|
130 | 154 | exit 1
|
131 | 155 | fi
|
132 | 156 |
|
| 157 | + echo "vasil before cf_export" |
| 158 | + |
133 | 159 | cf_export ID_TOKEN=$ID_TOKEN --mask
|
| 160 | + |
| 161 | + echo "vasil after cf_export" |
0 commit comments