@@ -222,3 +222,55 @@ import os
222
222
223
223
print("myCred expires at " + os.getenv("GPTSCRIPT_CREDENTIAL_EXPIRATION", ""))
224
224
```
225
+
226
+ ## Stacked Credential Contexts (Advanced)
227
+
228
+ When setting the ` --credential-context ` argument in GPTScript, you can specify multiple contexts separated by commas.
229
+ We refer to this as "stacked credential contexts", or just stacked contexts for short. This allows you to specify an order
230
+ of priority for credential contexts. This is best explained by example.
231
+
232
+ ### Example: stacked contexts when running a script that uses a credential
233
+
234
+ Let's say you have two contexts, ` one ` and ` two ` , and you specify them like this:
235
+
236
+ ``` bash
237
+ gptscript --credential-context one,two my-script.gpt
238
+ ```
239
+
240
+ ```
241
+ Credential: my-credential-tool.gpt as myCred
242
+
243
+ <tool stuff here>
244
+ ```
245
+
246
+ When GPTScript runs, it will first look for a credential called ` myCred ` in the ` one ` context.
247
+ If it doesn't find it there, it will look for it in the ` two ` context. If it also doesn't find it there,
248
+ it will run the ` my-credential-tool.gpt ` tool to get the credential. It will then store the new credential into the ` one `
249
+ context, since that has the highest priority.
250
+
251
+ ### Example: stacked contexts when listing credentials
252
+
253
+ ``` bash
254
+ gptscript --credential-context one,two credentials
255
+ ```
256
+
257
+ When you list credentials like this, GPTScript will print out the information for all credentials in contexts one and two,
258
+ with one exception. If there is a credential name that exists in both contexts, GPTScript will only print the information
259
+ for the credential in the context with the highest priority, which in this case is ` one ` .
260
+
261
+ (To see all credentials in all contexts, you can still use the ` --all-contexts ` flag, and it will show all credentials,
262
+ regardless of whether the same name appears in another context.)
263
+
264
+ ### Example: stacked contexts when showing credentials
265
+
266
+ ``` bash
267
+ gptscript --credential-context one,two credential show myCred
268
+ ```
269
+
270
+ When you show a credential like this, GPTScript will first look for ` myCred ` in the ` one ` context. If it doesn't find it
271
+ there, it will look for it in the ` two ` context. If it doesn't find it in either context, it will print an error message.
272
+
273
+ ::: note
274
+ You cannot specify stacked contexts when doing ` gptscript credential delete ` . GPTScript will return an error if
275
+ more than one context is specified for this command.
276
+ :::
0 commit comments