|
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