diff --git a/package-lock.json b/package-lock.json index a14bb5b5..59305a11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "ajv": "^6.12.6", - "auth0": "^4.12.0", + "auth0": "^4.13.0", "dot-prop": "^5.2.0", "fs-extra": "^10.1.0", "global-agent": "^2.1.12", @@ -20,7 +20,7 @@ "nconf": "^0.12.1", "promise-pool-executor": "^1.1.1", "sanitize-filename": "^1.6.3", - "winston": "^3.16.0", + "winston": "^3.17.0", "yargs": "^15.3.1" }, "bin": { @@ -28,7 +28,7 @@ }, "devDependencies": { "@types/fs-extra": "^9.0.13", - "@types/lodash": "^4.17.7", + "@types/lodash": "^4.17.13", "@types/mocha": "^10.0.9", "@types/nconf": "^0.10.7", "@typescript-eslint/parser": "^5.30.3", @@ -37,11 +37,11 @@ "eslint": "^7.28.0", "eslint-config-airbnb-base": "^14.2.1", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.30.0", + "eslint-plugin-import": "^2.31.0", "husky": "^7.0.4", "kacl": "^1.1.1", "mocha": "^10.8.2", - "nock": "^13.5.5", + "nock": "^13.5.6", "node-fetch": "^2.7.0", "nyc": "^15.0.1", "prettier": "^2.6.2", @@ -656,6 +656,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", "engines": { "node": ">=0.1.90" } @@ -1009,10 +1010,11 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", - "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", - "dev": true + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/mocha": { "version": "10.0.9", @@ -1035,7 +1037,8 @@ "node_modules/@types/triple-beam": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", - "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" }, "node_modules/@typescript-eslint/parser": { "version": "5.62.0", @@ -1401,9 +1404,9 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "node_modules/auth0": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/auth0/-/auth0-4.12.0.tgz", - "integrity": "sha512-5WDAHb8EvWSmRyA9D+FTBrHdEL1RM48PTPHVPxSmzbiAXrhR4pSgwSJyoGjia2+rvMR2NMXhtMfuRRqosEp7PA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/auth0/-/auth0-4.13.0.tgz", + "integrity": "sha512-/T0BVRFnU62rbluj88np7loEUWWMAjD/pDzIBIv5b5FRRDyimyfpU8m+i6v1fE66KZ9XiTE+tjHJeaR1PTG/eA==", "license": "MIT", "dependencies": { "jose": "^4.13.2", @@ -2726,7 +2729,8 @@ "node_modules/fecha": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" }, "node_modules/file-entry-cache": { "version": "6.0.1", @@ -4046,9 +4050,10 @@ } }, "node_modules/logform": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.1.tgz", - "integrity": "sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", + "license": "MIT", "dependencies": { "@colors/colors": "1.6.0", "@types/triple-beam": "^1.3.2", @@ -4498,10 +4503,11 @@ } }, "node_modules/nock": { - "version": "13.5.5", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.5.tgz", - "integrity": "sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz", + "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -5314,6 +5320,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5559,6 +5566,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", "engines": { "node": ">=10" } @@ -5836,6 +5844,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -6061,6 +6070,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", "engines": { "node": ">= 14.0.0" } @@ -6398,7 +6408,8 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/uuid": { "version": "8.3.2", @@ -6472,33 +6483,34 @@ } }, "node_modules/winston": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.16.0.tgz", - "integrity": "sha512-xz7+cyGN5M+4CmmD4Npq1/4T+UZaz7HaeTlAruFUTjk79CNMq+P6H30vlE4z0qfqJ01VHYQwd7OZo03nYm/+lg==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", + "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", "license": "MIT", "dependencies": { "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", "async": "^3.2.3", "is-stream": "^2.0.0", - "logform": "^2.6.0", + "logform": "^2.7.0", "one-time": "^1.0.0", "readable-stream": "^3.4.0", "safe-stable-stringify": "^2.3.1", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", - "winston-transport": "^4.7.0" + "winston-transport": "^4.9.0" }, "engines": { "node": ">= 12.0.0" } }, "node_modules/winston-transport": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.1.tgz", - "integrity": "sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", + "license": "MIT", "dependencies": { - "logform": "^2.6.1", + "logform": "^2.7.0", "readable-stream": "^3.6.2", "triple-beam": "^1.3.0" }, @@ -7499,9 +7511,9 @@ "dev": true }, "@types/lodash": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", - "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", + "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", "dev": true }, "@types/mocha": { @@ -7765,9 +7777,9 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "auth0": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/auth0/-/auth0-4.12.0.tgz", - "integrity": "sha512-5WDAHb8EvWSmRyA9D+FTBrHdEL1RM48PTPHVPxSmzbiAXrhR4pSgwSJyoGjia2+rvMR2NMXhtMfuRRqosEp7PA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/auth0/-/auth0-4.13.0.tgz", + "integrity": "sha512-/T0BVRFnU62rbluj88np7loEUWWMAjD/pDzIBIv5b5FRRDyimyfpU8m+i6v1fE66KZ9XiTE+tjHJeaR1PTG/eA==", "requires": { "jose": "^4.13.2", "undici-types": "^6.15.0", @@ -9705,9 +9717,9 @@ } }, "logform": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.1.tgz", - "integrity": "sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", "requires": { "@colors/colors": "1.6.0", "@types/triple-beam": "^1.3.2", @@ -10049,9 +10061,9 @@ } }, "nock": { - "version": "13.5.5", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.5.tgz", - "integrity": "sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==", + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz", + "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==", "dev": true, "requires": { "debug": "^4.1.0", @@ -11480,29 +11492,29 @@ } }, "winston": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.16.0.tgz", - "integrity": "sha512-xz7+cyGN5M+4CmmD4Npq1/4T+UZaz7HaeTlAruFUTjk79CNMq+P6H30vlE4z0qfqJ01VHYQwd7OZo03nYm/+lg==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", + "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", "requires": { "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", "async": "^3.2.3", "is-stream": "^2.0.0", - "logform": "^2.6.0", + "logform": "^2.7.0", "one-time": "^1.0.0", "readable-stream": "^3.4.0", "safe-stable-stringify": "^2.3.1", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", - "winston-transport": "^4.7.0" + "winston-transport": "^4.9.0" } }, "winston-transport": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.1.tgz", - "integrity": "sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", "requires": { - "logform": "^2.6.1", + "logform": "^2.7.0", "readable-stream": "^3.6.2", "triple-beam": "^1.3.0" } diff --git a/package.json b/package.json index facf1640..9d437d52 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "homepage": "https://github.com/auth0/auth0-deploy-cli#readme", "dependencies": { "ajv": "^6.12.6", - "auth0": "^4.12.0", + "auth0": "^4.13.0", "dot-prop": "^5.2.0", "fs-extra": "^10.1.0", "global-agent": "^2.1.12", @@ -43,12 +43,12 @@ "nconf": "^0.12.1", "promise-pool-executor": "^1.1.1", "sanitize-filename": "^1.6.3", - "winston": "^3.16.0", + "winston": "^3.17.0", "yargs": "^15.3.1" }, "devDependencies": { "@types/fs-extra": "^9.0.13", - "@types/lodash": "^4.17.7", + "@types/lodash": "^4.17.13", "@types/mocha": "^10.0.9", "@types/nconf": "^0.10.7", "@typescript-eslint/parser": "^5.30.3", @@ -57,11 +57,11 @@ "eslint": "^7.28.0", "eslint-config-airbnb-base": "^14.2.1", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.30.0", + "eslint-plugin-import": "^2.31.0", "husky": "^7.0.4", "kacl": "^1.1.1", "mocha": "^10.8.2", - "nock": "^13.5.5", + "nock": "^13.5.6", "node-fetch": "^2.7.0", "nyc": "^15.0.1", "prettier": "^2.6.2", diff --git a/src/context/directory/handlers/flowVaultConnections.ts b/src/context/directory/handlers/flowVaultConnections.ts new file mode 100644 index 00000000..1ea45e0e --- /dev/null +++ b/src/context/directory/handlers/flowVaultConnections.ts @@ -0,0 +1,91 @@ +import path from 'path'; +import fs from 'fs-extra'; +import { isEmpty } from 'lodash'; +import { constants } from '../../../tools'; + +import log from '../../../logger'; +import { getFiles, existsMustBeDir, dumpJSON, loadJSON, sanitize } from '../../../utils'; +import { DirectoryHandler } from '.'; +import DirectoryContext from '..'; +import { ParsedAsset } from '../../../types'; + +import { FlowVaultConnection } from '../../../tools/auth0/handlers/flowVaultConnections'; + +type ParsedFlowVaults = ParsedAsset<'flowVaultConnections', FlowVaultConnection[]>; + +function parse(context: DirectoryContext): ParsedFlowVaults { + const flowVaultsFolder = path.join(context.filePath, constants.FLOWS_VAULT_DIRECTORY); + if (!existsMustBeDir(flowVaultsFolder)) return { flowVaultConnections: null }; // Skip + + const files = getFiles(flowVaultsFolder, ['.json']); + + const flowVaultConnections = files.map((f) => { + const connection = { + ...loadJSON(f, { + mappings: context.mappings, + disableKeywordReplacement: context.disableKeywordReplacement, + }), + }; + return connection; + }); + + return { + flowVaultConnections, + }; +} + +async function dump(context: DirectoryContext) { + const { flowVaultConnections } = context.assets; + + if (!flowVaultConnections || isEmpty(flowVaultConnections)) return; // Skip, nothing to dump + + // Check if there is any duplicate form name + const vaultConnectionsNamesSet = new Set(); + const duplicateVaultConnectionsNames = new Set(); + + flowVaultConnections.forEach((form) => { + if (vaultConnectionsNamesSet.has(form.name)) { + duplicateVaultConnectionsNames.add(form.name); + } else { + vaultConnectionsNamesSet.add(form.name); + } + }); + + if (duplicateVaultConnectionsNames.size > 0) { + const duplicatesArray = Array.from(duplicateVaultConnectionsNames); + log.error( + `Duplicate flow vault connections names found: [${duplicatesArray}] , make sure to rename them to avoid conflicts` + ); + throw new Error(`Duplicate flow vault connections names found: ${duplicatesArray}`); + } + + const flowVaultsFolder = path.join(context.filePath, constants.FLOWS_VAULT_DIRECTORY); + fs.ensureDirSync(flowVaultsFolder); + + const removeKeysFromOutput = ['id', 'created_at', 'updated_at', 'refreshed_at', 'fingerprint']; + flowVaultConnections.forEach((connection) => { + removeKeysFromOutput.forEach((key) => { + if (key in connection) { + delete connection[key]; + } + }); + }); + + console.warn( + 'WARNING! Flow vault connections `setup` key does not support keyword preservation, `export` or `dump` commmand will not preserve `setup` key in local configuration file.' + ); + + flowVaultConnections.forEach((connection) => { + const connectionFile = path.join(flowVaultsFolder, sanitize(`${connection.name}.json`)); + log.info(`Writing ${connectionFile}`); + + dumpJSON(connectionFile, connection); + }); +} + +const flowVaultsHandler: DirectoryHandler = { + parse, + dump, +}; + +export default flowVaultsHandler; diff --git a/src/context/directory/handlers/flows.ts b/src/context/directory/handlers/flows.ts new file mode 100644 index 00000000..467dabb1 --- /dev/null +++ b/src/context/directory/handlers/flows.ts @@ -0,0 +1,86 @@ +import path from 'path'; +import fs from 'fs-extra'; +import { constants } from '../../../tools'; + +import log from '../../../logger'; +import { getFiles, existsMustBeDir, dumpJSON, loadJSON, sanitize } from '../../../utils'; +import { DirectoryHandler } from '.'; +import DirectoryContext from '..'; +import { ParsedAsset } from '../../../types'; +import { Flow } from '../../../tools/auth0/handlers/flows'; + +type ParsedFlows = ParsedAsset<'flows', Flow[]>; + +function parse(context: DirectoryContext): ParsedFlows { + const flowsFolder = path.join(context.filePath, constants.FLOWS_DIRECTORY); + if (!existsMustBeDir(flowsFolder)) return { flows: null }; // Skip + + const files = getFiles(flowsFolder, ['.json']); + + const flows = files.map((f) => { + const flow = { + ...loadJSON(f, { + mappings: context.mappings, + disableKeywordReplacement: context.disableKeywordReplacement, + }), + }; + return flow; + }); + + return { + flows, + }; +} + +async function dump(context: DirectoryContext) { + const { flows } = context.assets; + + if (!flows) return; // Skip, nothing to dump + + const flowsFolder = path.join(context.filePath, constants.FLOWS_DIRECTORY); + fs.ensureDirSync(flowsFolder); + + // Check if there is any duplicate flow name + const flowNameSet = new Set(); + const duplicateFlowNames = new Set(); + + flows.forEach((flow) => { + if (flowNameSet.has(flow.name)) { + duplicateFlowNames.add(flow.name); + } else { + flowNameSet.add(flow.name); + } + }); + + if (duplicateFlowNames.size > 0) { + const duplicateNamesArray = Array.from(duplicateFlowNames).join(', '); + log.error( + `Duplicate flow names found: [${duplicateNamesArray}] , make sure to rename them to avoid conflicts` + ); + throw new Error(`Duplicate flow names found: ${duplicateNamesArray}`); + } + + flows.forEach((flow) => { + if (flow.name === undefined) { + return; + } + const flowFile = path.join(flowsFolder, sanitize(`${flow.name}.json`)); + log.info(`Writing ${flowFile}`); + + const removeKeysFromOutput = ['id', 'created_at', 'updated_at', 'submitted_at', 'embedded_at']; + removeKeysFromOutput.forEach((key) => { + if (key in flow) { + delete flow[key]; + } + }); + + dumpJSON(flowFile, flow); + }); +} + +const flowsHandler: DirectoryHandler = { + parse, + dump, +}; + +export default flowsHandler; diff --git a/src/context/directory/handlers/forms.ts b/src/context/directory/handlers/forms.ts new file mode 100644 index 00000000..b6eb7380 --- /dev/null +++ b/src/context/directory/handlers/forms.ts @@ -0,0 +1,87 @@ +import path from 'path'; +import fs from 'fs-extra'; +import { constants } from '../../../tools'; + +import log from '../../../logger'; +import { getFiles, existsMustBeDir, dumpJSON, loadJSON, sanitize } from '../../../utils'; +import { DirectoryHandler } from '.'; +import DirectoryContext from '..'; +import { ParsedAsset } from '../../../types'; +import { Form } from '../../../tools/auth0/handlers/forms'; + +type ParsedFroms = ParsedAsset<'forms', Form[]>; + +function parse(context: DirectoryContext): ParsedFroms { + const formsFolder = path.join(context.filePath, constants.FORMS_DIRECTORY); + if (!existsMustBeDir(formsFolder)) return { forms: null }; // Skip + + const files = getFiles(formsFolder, ['.json']); + + const forms = files.map((f) => { + const form = { + ...loadJSON(f, { + mappings: context.mappings, + disableKeywordReplacement: context.disableKeywordReplacement, + }), + }; + return form; + }); + + return { + forms, + }; +} + +async function dump(context: DirectoryContext) { + const { forms } = context.assets; + + if (!forms) return; // Skip, nothing to dump + + const formsFolder = path.join(context.filePath, constants.FORMS_DIRECTORY); + fs.ensureDirSync(formsFolder); + + // Check if there is any duplicate form name + const formNameSet = new Set(); + const duplicateFormNames = new Set(); + + forms.forEach((form) => { + if (formNameSet.has(form.name)) { + duplicateFormNames.add(form.name); + } else { + formNameSet.add(form.name); + } + }); + + if (duplicateFormNames.size > 0) { + const duplicateNamesArray = Array.from(duplicateFormNames).join(', '); + log.error( + `Duplicate form names found: [${duplicateNamesArray}] , make sure to rename them to avoid conflicts` + ); + throw new Error(`Duplicate form names found: ${duplicateNamesArray}`); + } + + forms.forEach((form) => { + if (form.name === undefined) { + return; + } + + const formFile = path.join(formsFolder, sanitize(`${form.name}.json`)); + log.info(`Writing ${formFile}`); + + const removeKeysFromOutput = ['id', 'created_at', 'updated_at']; + removeKeysFromOutput.forEach((key) => { + if (key in form) { + delete form[key]; + } + }); + + dumpJSON(formFile, form); + }); +} + +const formsHandler: DirectoryHandler = { + parse, + dump, +}; + +export default formsHandler; diff --git a/src/context/directory/handlers/index.ts b/src/context/directory/handlers/index.ts index 8976d91c..6b4b4c03 100644 --- a/src/context/directory/handlers/index.ts +++ b/src/context/directory/handlers/index.ts @@ -26,6 +26,9 @@ import themes from './themes'; import rules from './rules'; import hooks from './hooks'; import rulesConfigs from './rulesConfigs'; +import forms from './forms'; +import flows from './flows'; +import flowVaultConnections from './flowVaultConnections'; import DirectoryContext from '..'; import { AssetTypes, Asset } from '../../../types'; @@ -66,6 +69,9 @@ const directoryHandlers: { prompts, customDomains, themes, + forms, + flows, + flowVaultConnections, }; export default directoryHandlers; diff --git a/src/context/yaml/handlers/flowVaultConnections.ts b/src/context/yaml/handlers/flowVaultConnections.ts new file mode 100644 index 00000000..91a9226d --- /dev/null +++ b/src/context/yaml/handlers/flowVaultConnections.ts @@ -0,0 +1,67 @@ +import { YAMLHandler } from '.'; +import YAMLContext from '..'; +import { ParsedAsset } from '../../../types'; +import { FlowVaultConnection } from '../../../tools/auth0/handlers/flowVaultConnections'; +import log from '../../../logger'; + +type ParsedParsedFlowVaults = ParsedAsset<'flowVaultConnections', FlowVaultConnection[]>; + +async function dump(context: YAMLContext): Promise { + const { flowVaultConnections } = context.assets; + + if (!flowVaultConnections) return { flowVaultConnections: null }; + + // Check if there is any duplicate form name + const vaultConnectionsNames = new Set(); + const duplicateVaultConnectionsNames = new Set(); + + flowVaultConnections.forEach((form) => { + if (vaultConnectionsNames.has(form.name)) { + duplicateVaultConnectionsNames.add(form.name); + } else { + vaultConnectionsNames.add(form.name); + } + }); + + if (duplicateVaultConnectionsNames.size > 0) { + const duplicatesArray = Array.from(duplicateVaultConnectionsNames).join(', '); + log.error( + `Duplicate flow vault connections names found: [${duplicatesArray}] , make sure to rename them to avoid conflicts` + ); + throw new Error(`Duplicate flow vault connections names found: ${duplicatesArray}`); + } + + const removeKeysFromOutput = ['id', 'created_at', 'updated_at', 'refreshed_at', 'fingerprint']; + flowVaultConnections.forEach((connection) => { + removeKeysFromOutput.forEach((key) => { + if (key in connection) { + delete connection[key]; + } + }); + }); + + console.warn( + 'WARNING! Flow vault connections `setup` key does not support keyword preservation, `export` or `dump` commmand will not preserve `setup` key in local configuration file.' + ); + + return { + flowVaultConnections, + }; +} + +async function parse(context: YAMLContext): Promise { + const { flowVaultConnections } = context.assets; + + if (!flowVaultConnections) return { flowVaultConnections: null }; + + return { + flowVaultConnections, + }; +} + +const pagesHandler: YAMLHandler = { + parse, + dump, +}; + +export default pagesHandler; diff --git a/src/context/yaml/handlers/flows.ts b/src/context/yaml/handlers/flows.ts new file mode 100644 index 00000000..057e3740 --- /dev/null +++ b/src/context/yaml/handlers/flows.ts @@ -0,0 +1,105 @@ +import path from 'path'; +import fs from 'fs-extra'; + +import log from '../../../logger'; +import { YAMLHandler } from '.'; +import YAMLContext from '..'; +import { ParsedAsset } from '../../../types'; +import { Flow } from '../../../tools/auth0/handlers/flows'; +import { loadJSON, sanitize } from '../../../utils'; +import { constants } from '../../../tools'; + +type ParsedFlows = ParsedAsset<'flows', Flow[]>; + +async function parse(context: YAMLContext): Promise { + const { flows } = context.assets; + + if (!flows) return { flows: null }; + + const parsedFlows = flows.map((flow: Flow) => { + const flowFile = path.join(context.basePath, flow.body); + + const parsedFlowBody = loadJSON(flowFile, { + mappings: context.mappings, + disableKeywordReplacement: context.disableKeywordReplacement, + }); + + // Remove the body from the form object + delete parsedFlowBody.body; + + return { + name: flow.name, + ...parsedFlowBody, + }; + }); + + return { + flows: [...parsedFlows], + }; +} + +async function dump(context: YAMLContext): Promise { + let { flows } = context.assets; + + if (!flows) { + return { flows: null }; + } + + const pagesFolder = path.join(context.basePath, constants.FLOWS_DIRECTORY); + fs.ensureDirSync(pagesFolder); + + // Check if there is any duplicate flow name + const flowNameSet = new Set(); + const duplicateFlowNames = new Set(); + + flows.forEach((flow) => { + if (flowNameSet.has(flow.name)) { + duplicateFlowNames.add(flow.name); + } else { + flowNameSet.add(flow.name); + } + }); + + if (duplicateFlowNames.size > 0) { + const duplicateNamesArray = Array.from(duplicateFlowNames).join(', '); + log.error( + `Duplicate flow names found: [${duplicateNamesArray}] , make sure to rename them to avoid conflicts` + ); + throw new Error(`Duplicate flow names found: ${duplicateNamesArray}`); + } + + flows = flows.map((flow) => { + if (flow.name === undefined) { + return flow; + } + + const flowName = sanitize(flow.name); + + const jsonFile = path.join(pagesFolder, `${flowName}.json`); + log.info(`Writing ${jsonFile}`); + + const removeKeysFromOutput = ['id', 'created_at', 'updated_at', 'submitted_at', 'embedded_at']; + removeKeysFromOutput.forEach((key) => { + if (key in flow) { + delete flow[key]; + } + }); + + const jsonBody = JSON.stringify(flow, null, 2); + fs.writeFileSync(jsonFile, jsonBody); + + return { + name: flow.name, + body: `./flows/${flowName}.json`, + }; + }); + + return { flows }; +} + +const pagesHandler: YAMLHandler = { + parse, + dump, +}; + +export default pagesHandler; diff --git a/src/context/yaml/handlers/forms.ts b/src/context/yaml/handlers/forms.ts new file mode 100644 index 00000000..d59fec64 --- /dev/null +++ b/src/context/yaml/handlers/forms.ts @@ -0,0 +1,104 @@ +import path from 'path'; +import fs from 'fs-extra'; + +import log from '../../../logger'; +import { YAMLHandler } from '.'; +import YAMLContext from '..'; +import { ParsedAsset } from '../../../types'; +import { Form } from '../../../tools/auth0/handlers/forms'; +import { loadJSON, sanitize } from '../../../utils'; +import constants from '../../../tools/constants'; + +type ParsedForms = ParsedAsset<'forms', Partial
[]>; + +async function parse(context: YAMLContext): Promise { + const { forms } = context.assets; + + if (!forms) return { forms: null }; + + const parsedForms = forms.map((form: Form) => { + const formFile = path.join(context.basePath, form.body); + + const parsedFormBody = loadJSON(formFile, { + mappings: context.mappings, + disableKeywordReplacement: context.disableKeywordReplacement, + }); + + // Remove the body from the form object + delete parsedFormBody.body; + + return { + name: form.name, + ...parsedFormBody, + }; + }); + + return { + forms: [...parsedForms], + }; +} + +async function dump(context: YAMLContext): Promise { + let { forms } = context.assets; + + if (!forms) { + return { forms: null }; + } + + const pagesFolder = path.join(context.basePath, constants.FORMS_DIRECTORY); + fs.ensureDirSync(pagesFolder); + + // Check if there is any duplicate form name + const formNameSet = new Set(); + const duplicateFormNames = new Set(); + + forms.forEach((form) => { + if (formNameSet.has(form.name)) { + duplicateFormNames.add(form.name); + } else { + formNameSet.add(form.name); + } + }); + + if (duplicateFormNames.size > 0) { + const duplicateNamesArray = Array.from(duplicateFormNames).join(', '); + log.error( + `Duplicate form names found: [${duplicateNamesArray}] , make sure to rename them to avoid conflicts` + ); + throw new Error(`Duplicate form names found: ${duplicateNamesArray}`); + } + + forms = forms.map((form) => { + if (form.name === undefined) { + return form; + } + + const formName = sanitize(form.name); + + const jsonFile = path.join(pagesFolder, `${formName}.json`); + log.info(`Writing ${jsonFile}`); + + const removeKeysFromOutput = ['id', 'created_at', 'updated_at']; + removeKeysFromOutput.forEach((key) => { + if (key in form) { + delete form[key]; + } + }); + + const jsonBody = JSON.stringify(form, null, 2); + fs.writeFileSync(jsonFile, jsonBody); + return { + name: form.name, + body: `./forms/${formName}.json`, + }; + }); + + return { forms }; +} + +const pagesHandler: YAMLHandler = { + parse, + dump, +}; + +export default pagesHandler; diff --git a/src/context/yaml/handlers/index.ts b/src/context/yaml/handlers/index.ts index 62a3e2a7..2a80d697 100644 --- a/src/context/yaml/handlers/index.ts +++ b/src/context/yaml/handlers/index.ts @@ -26,6 +26,9 @@ import themes from './themes'; import rules from './rules'; import rulesConfigs from './rulesConfigs'; import hooks from './hooks'; +import forms from './forms'; +import flows from './flows'; +import flowVaultConnections from './flowVaultConnections'; import YAMLContext from '..'; import { AssetTypes } from '../../../types'; @@ -64,6 +67,9 @@ const yamlHandlers: { [key in AssetTypes]: YAMLHandler<{ [key: string]: unknown prompts, customDomains, themes, + forms, + flows, + flowVaultConnections, }; export default yamlHandlers; diff --git a/src/tools/auth0/handlers/flowVaultConnections.ts b/src/tools/auth0/handlers/flowVaultConnections.ts new file mode 100644 index 00000000..0cd18bc6 --- /dev/null +++ b/src/tools/auth0/handlers/flowVaultConnections.ts @@ -0,0 +1,205 @@ +import { + GetFlowsVaultConnections200ResponseOneOfInner, + PatchFlowsVaultConnectionsByIdRequest, +} from 'auth0'; +import { isArray, isEmpty } from 'lodash'; +import DefaultHandler from './default'; +import { Asset, Assets, CalculatedChanges } from '../../../types'; +import constants from '../../constants'; +import log from '../../../logger'; + +export type FlowVaultConnection = { + name: string; + app_id: string; + environment: string; + setup: object; + account_name: string; + ready: string; +}; + +export const schema = { + type: 'array', + items: { + type: 'object', + properties: { + name: { type: 'string' }, + app_id: { type: 'string', enum: constants.CONNECTION_APP_ID }, + environment: { type: 'string' }, + setup: { type: 'object' }, + account_name: { type: 'string' }, + ready: { type: 'boolean' }, + }, + required: ['name', 'app_id'], + }, + additionalProperties: false, +}; + +export default class FlowVaultHandler extends DefaultHandler { + existing: Asset; + + constructor(options: DefaultHandler) { + super({ + ...options, + type: 'flowVaultConnections', + id: 'id', + stripCreateFields: ['created_at', 'updated_at', 'refreshed_at', 'fingerprint', 'ready'], + stripUpdateFields: ['created_at', 'updated_at', 'refreshed_at', 'fingerprint', 'ready'], + }); + } + + async getType(): Promise { + if (this.existing) { + return this.existing; + } + + this.existing = await this.getAllFlowConnections(); + + return this.existing; + } + + async processChanges(assets: Assets): Promise { + const { flowVaultConnections } = assets; + + // Do nothing if not set + if (!flowVaultConnections) return; + + const { del, update, create } = await this.calcChanges(assets); + + log.debug( + `Start processChanges for flow vault connections [delete:${del.length}] [update:${update.length}], [create:${create.length}]` + ); + + const changes = [{ del: del }, { create: create }, { update: update }]; + + await Promise.all( + changes.map(async (change) => { + switch (true) { + case change.del && change.del.length > 0: + await this.deleteVaultConnections(change.del || []); + break; + case change.create && change.create.length > 0: + await this.createVaultConnections(change.create); + break; + case change.update && change.update.length > 0: + if (change.update) await this.updateVaultConnections(change.update); + break; + default: + break; + } + }) + ); + } + + async getAllFlowConnections(): Promise { + const allFlowConnections: GetFlowsVaultConnections200ResponseOneOfInner[] = []; + // paginate without paginate helper as this is not getAll but getAllConnections + // paginate through all flow connections + let page = 0; + while (true) { + const { + data: { connections, total }, + } = await this.client.flows.getAllConnections({ + page: page, + per_page: 100, + include_totals: true, + }); + + // if we get an unexpected response, break the loop to avoid infinite loop + if (!isArray(allFlowConnections) || typeof total !== 'number') { + break; + } + + allFlowConnections.push(...connections); + page += 1; + + if (allFlowConnections.length === total) { + break; + } + } + + return allFlowConnections; + } + + async createVaultConnection(conn): Promise { + if ('ready' in conn) { + delete conn.ready; + } + const { data: created } = await this.client.flows.createConnection(conn); + return created; + } + + async createVaultConnections(creates: CalculatedChanges['create']) { + await this.client.pool + .addEachTask({ + data: creates || [], + generator: (item) => + this.createVaultConnection(item) + .then((data) => { + this.didCreate(data); + this.created += 1; + }) + .catch((err) => { + throw new Error(`Problem creating ${this.type} ${this.objString(item)}\n${err}`); + }), + }) + .promise(); + } + + async updateVaultConnection(conn) { + const { id, name, setup } = conn; + const params: PatchFlowsVaultConnectionsByIdRequest = { + name, + }; + if (!isEmpty(setup)) { + params.setup = setup; + } + const updated = await this.client.flows.updateConnection({ id: id }, params); + return updated; + } + + async updateVaultConnections(updates: CalculatedChanges['update']): Promise { + await this.client.pool + .addEachTask({ + data: updates || [], + generator: (item) => + this.updateVaultConnection(item) + .then((data) => { + this.didUpdate(data); + this.updated += 1; + }) + .catch((err) => { + throw new Error(`Problem updating ${this.type} ${this.objString(item)}\n${err}`); + }), + }) + .promise(); + } + + async deleteVaultConnection(conn): Promise { + await this.client.flows.deleteConnection({ id: conn.id }); + } + + async deleteVaultConnections(data: Asset[]): Promise { + if ( + this.config('AUTH0_ALLOW_DELETE') === 'true' || + this.config('AUTH0_ALLOW_DELETE') === true + ) { + await this.client.pool + .addEachTask({ + data: data || [], + generator: (item) => + this.deleteVaultConnection(item) + .then(() => { + this.didDelete(item); + this.deleted += 1; + }) + .catch((err) => { + throw new Error(`Problem deleting ${this.type} ${this.objString(item)}\n${err}`); + }), + }) + .promise(); + } else { + log.warn(`Detected the following flow vault connection should be deleted. Doing so may be destructive.\nYou can enable deletes by setting 'AUTH0_ALLOW_DELETE' to true in the config + \n${data.map((i) => this.objString(i)).join('\n')}`); + } + } +} diff --git a/src/tools/auth0/handlers/flows.ts b/src/tools/auth0/handlers/flows.ts new file mode 100644 index 00000000..1d0a9446 --- /dev/null +++ b/src/tools/auth0/handlers/flows.ts @@ -0,0 +1,181 @@ +import _, { isArray } from 'lodash'; +import { + GetFlows200ResponseOneOfInner, + GetFlowsVaultConnections200ResponseOneOfInner, +} from 'auth0'; +import dotProp from 'dot-prop'; +import DefaultHandler, { order } from './default'; +import { Asset, Assets, CalculatedChanges } from '../../../types'; +import { paginate } from '../client'; +import log from '../../../logger'; +import { findKeyPathWithValue } from '../../../utils'; + +export type Flow = { + name: string; + body: string; +}; + +export const schema = { + type: 'array', + items: { + type: 'object', + properties: { + name: { type: 'string' }, + body: { type: 'string' }, + }, + required: ['name'], + }, + additionalProperties: false, +}; + +export default class FlowHandler extends DefaultHandler { + existing: Asset; + + constructor(options: DefaultHandler) { + super({ + ...options, + type: 'flows', + id: 'id', + }); + } + + async getType(): Promise { + if (this.existing) { + return this.existing; + } + + const [flows, allFlowConnections] = await Promise.all([ + paginate(this.client.flows.getAll, { + paginate: true, + include_totals: true, + }), + this.getAllFlowConnections(), + ]); + + const allFlows = await Promise.all( + flows.map(async (f) => { + const { data: flow } = await this.client.flows.get({ id: f.id }); + return flow; + }) + ); + + // create a map for id to name from allFlowConnections + const connectionIdMap = {}; + allFlowConnections.forEach((c) => { + connectionIdMap[c.id] = c.name; + }); + + this.existing = await this.formateFlowConnectionId(allFlows, connectionIdMap); + return this.existing; + } + + async processChanges(assets: Assets): Promise { + const { flows } = assets; + + // Do nothing if not set + if (!flows) return; + + const allFlowConnections = await this.getAllFlowConnections(); + + // create a map for name to id from allFlowConnections + const connectionNameMap = {}; + allFlowConnections.forEach((c) => { + connectionNameMap[c.name] = c.id; + }); + + assets.flows = await this.pargeFlowConnectionName(flows, connectionNameMap); + + const { del, update, create, conflicts } = await this.calcChanges(assets); + + const changes: CalculatedChanges = { + del: del, + update: update, + create: create, + conflicts: conflicts, + }; + + await super.processChanges(assets, { + ...changes, + }); + } + + async getAllFlowConnections(): Promise { + const allFlowConnections: GetFlowsVaultConnections200ResponseOneOfInner[] = []; + // paginate without paginate helper as this is not getAll but getAllConnections + // paginate through all flow connections + let page = 0; + while (true) { + const { + data: { connections, total }, + } = await this.client.flows.getAllConnections({ + page: page, + per_page: 100, + include_totals: true, + }); + + // if we get an unexpected response, break the loop to avoid infinite loop + if (!isArray(allFlowConnections) || typeof total !== 'number') { + break; + } + + allFlowConnections.push(...connections); + page += 1; + + if (allFlowConnections.length === total) { + break; + } + } + + return allFlowConnections; + } + + async formateFlowConnectionId(flows, connectionIdMap): Promise { + // replace connection_id with flow connection names + await Promise.all( + flows.map(async (flow) => { + const flowConnetions = findKeyPathWithValue(flow, 'connection_id'); + await Promise.all( + flowConnetions.map(async (f) => { + const connectionId = (dotProp.get(flow, f.path) || '') as string; + const flowConnectionName = connectionIdMap[connectionId]; + if (!flowConnectionName) { + log.warn( + `Flow connection: ${connectionId} not found for flow:${flow.name}, please verify the flow connection id.` + ); + } else { + dotProp.set(flow, f.path, flowConnectionName); + } + }) + ); + return flow; + }) + ); + + return flows; + } + + async pargeFlowConnectionName(flows, connectionNameMap): Promise { + // replace connection_id with flow connection names + const parsedFlows = await Promise.all( + flows.map(async (flow) => { + const flowConnetions = findKeyPathWithValue(flow, 'connection_id'); + await Promise.all( + flowConnetions.map(async (f) => { + const connectionName = (dotProp.get(flow, f.path) || '') as string; + const flowConnectionId = connectionNameMap[connectionName]; + if (!flowConnectionId) { + log.error( + `Flow connection: ${flowConnectionId} not found for flow:${flow.name}, please verify the flow connection name.` + ); + } else { + dotProp.set(flow, f.path, flowConnectionId); + } + }) + ); + return flow; + }) + ); + + return parsedFlows; + } +} diff --git a/src/tools/auth0/handlers/forms.ts b/src/tools/auth0/handlers/forms.ts new file mode 100644 index 00000000..7f98fb07 --- /dev/null +++ b/src/tools/auth0/handlers/forms.ts @@ -0,0 +1,163 @@ +import { + GetFlows200ResponseOneOfInner, + GetForms200ResponseOneOfInner, + PostForms201Response, +} from 'auth0'; +import dotProp from 'dot-prop'; +import DefaultHandler from './default'; +import log from '../../../logger'; +import { Asset, Assets, CalculatedChanges } from '../../../types'; +import { paginate } from '../client'; +import { findKeyPathWithValue } from '../../../utils'; + +export type Form = { + name: string; + body: string; +}; + +export type FormResponse = PostForms201Response; + +export const schema = { + type: 'array', + items: { + type: 'object', + properties: { + name: { type: 'string' }, + body: { type: 'string' }, + }, + required: ['name'], + }, + additionalProperties: false, +}; + +export default class FormsHandler extends DefaultHandler { + existing: Asset; + + constructor(options: DefaultHandler) { + super({ + ...options, + type: 'forms', + id: 'id', + stripCreateFields: ['created_at', 'updated_at', 'submitted_at', 'embedded_at'], + stripUpdateFields: ['created_at', 'updated_at', 'submitted_at', 'embedded_at'], + }); + } + + async getType(): Promise { + if (this.existing) { + return this.existing; + } + + const [forms, flows] = await Promise.all([ + paginate(this.client.forms.getAll, { + paginate: true, + include_totals: true, + }), + paginate(this.client.flows.getAll, { + paginate: true, + include_totals: true, + }), + ]); + + // get more details for each form + const allForms = await Promise.all( + forms.map(async (from) => { + const { data: form } = await this.client.forms.get({ id: from.id }); + return form; + }) + ); + + // create a map for id to name from allFlows + const flowIdMap = {}; + flows.forEach((f) => { + flowIdMap[f.id] = f.name; + }); + + this.existing = await this.formateFormFlowId(allForms, flowIdMap); + + return this.existing; + } + + async formateFormFlowId(forms, flowIdMap): Promise { + // replace flow_id with flow names + await Promise.all( + forms.map(async (form) => { + const flows = findKeyPathWithValue(form, 'flow_id'); + await Promise.all( + flows.map(async (f) => { + const flowId = (dotProp.get(form, f.path) || '') as string; + const flowName = flowIdMap[flowId]; + if (!flowName) { + log.warn( + `Flow: ${flowId} not found for form:${form.name}, please verify the flow id.` + ); + } else { + dotProp.set(form, f.path, flowName); + } + }) + ); + return form; + }) + ); + + return forms; + } + + async pargeFormFlowName(forms, flowNameMap): Promise { + // replace flow names with flow_id + await Promise.all( + forms.map(async (form) => { + const flows = findKeyPathWithValue(form, 'flow_id'); + await Promise.all( + flows.map(async (f) => { + const flowName = (dotProp.get(form, f.path) || '') as string; + const flowId = flowNameMap[flowName]; + if (!flowId) { + log.error( + `Flow: ${flowName} not found for form:${form.name}, please verify the flow name.` + ); + } else { + dotProp.set(form, f.path, flowNameMap[flowName]); + } + }) + ); + return form; + }) + ); + + return forms; + } + + async processChanges(assets: Assets): Promise { + const { forms } = assets; + + // Do nothing if not set + if (!forms) return; + + const flows = await paginate(this.client.flows.getAll, { + paginate: true, + include_totals: true, + }); + + // create a map for id to name from flows + const flowNamMap = {}; + flows.forEach((f) => { + flowNamMap[f.name] = f.id; + }); + + assets.forms = await this.pargeFormFlowName(forms, flowNamMap); + + const { del, update, create, conflicts } = await this.calcChanges(assets); + + const changes: CalculatedChanges = { + del: del, + update: update, + create: create, + conflicts: conflicts, + }; + + await super.processChanges(assets, { + ...changes, + }); + } +} diff --git a/src/tools/auth0/handlers/index.ts b/src/tools/auth0/handlers/index.ts index 3f4791ac..1f6f3f2b 100644 --- a/src/tools/auth0/handlers/index.ts +++ b/src/tools/auth0/handlers/index.ts @@ -26,6 +26,9 @@ import * as attackProtection from './attackProtection'; import * as logStreams from './logStreams'; import * as customDomains from './customDomains'; import * as themes from './themes'; +import * as forms from './forms'; +import * as flows from './flows'; +import * as flowVaultConnections from './flowVaultConnections'; import { AssetTypes } from '../../../types'; import APIHandler from './default'; @@ -60,6 +63,9 @@ const auth0ApiHandlers: { [key in AssetTypes]: any } = { logStreams, customDomains, themes, + forms, + flows, + flowVaultConnections, }; export default auth0ApiHandlers as { diff --git a/src/tools/constants.ts b/src/tools/constants.ts index 0093b124..70e4d692 100644 --- a/src/tools/constants.ts +++ b/src/tools/constants.ts @@ -174,6 +174,32 @@ const constants = { PARTIALS_DIRECTORY: 'partials', CUSTOM_DOMAINS_DIRECTORY: 'custom-domains', THEMES_DIRECTORY: 'themes', + CONNECTION_APP_ID: [ + 'ACTIVECAMPAIGN', + 'AIRTABLE', + 'AUTH0', + 'BIGQUERY', + 'CLEARBIT', + 'DOCUSIGN', + 'GOOGLE_SHEETS', + 'HTTP', + 'HUBSPOT', + 'JWT', + 'MAILCHIMP', + 'MAILJET', + 'PIPEDRIVE', + 'SALESFORCE', + 'SENDGRID', + 'SLACK', + 'STRIPE', + 'TELEGRAM', + 'TWILIO', + 'WHATSAPP', + 'ZAPIER', + ], + FORMS_DIRECTORY: 'forms', + FLOWS_DIRECTORY: 'flows', + FLOWS_VAULT_DIRECTORY: 'flow-vault-connections', }; export default constants; diff --git a/src/types.ts b/src/types.ts index 942d0cfc..08ac88bb 100644 --- a/src/types.ts +++ b/src/types.ts @@ -8,6 +8,9 @@ import { LogStream } from './tools/auth0/handlers/logStreams'; import { Client } from './tools/auth0/handlers/clients'; import { ClientGrant } from './tools/auth0/handlers/clientGrants'; import { Theme } from './tools/auth0/handlers/themes'; +import { Form } from './tools/auth0/handlers/forms'; +import { Flow } from './tools/auth0/handlers/flows'; +import { FlowVaultConnection } from './tools/auth0/handlers/flowVaultConnections'; type SharedPaginationParams = { checkpoint?: boolean; @@ -120,6 +123,9 @@ export type Assets = Partial<{ }; clientsOrig: Asset[] | null; themes: Theme[] | null; + forms: Form[] | null; + flows: Flow[] | null; + flowVaultConnections: FlowVaultConnection[] | null; }>; export type CalculatedChanges = { @@ -157,7 +163,10 @@ export type AssetTypes = | 'logStreams' | 'prompts' | 'customDomains' - | 'themes'; + | 'themes' + | 'forms' + | 'flows' + | 'flowVaultConnections'; export type KeywordMappings = { [key: string]: (string | number)[] | string | number }; diff --git a/src/utils.ts b/src/utils.ts index d9aae289..fe68e1cf 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,6 +2,7 @@ import path from 'path'; import fs from 'fs-extra'; import sanitizeName from 'sanitize-filename'; import dotProp from 'dot-prop'; +import { forOwn, isObject } from 'lodash'; import { loadFileAndReplaceKeywords, Auth0 } from './tools'; import log from './logger'; import { Asset, Assets, Config, KeywordMappings } from './types'; @@ -231,3 +232,30 @@ export function nomalizedYAMLPath(filePath: string): string[] { return pathSplit; } + +export const findKeyPathWithValue = (obj: any, findKey: string, parentPath: string = '') => { + // Results array to hold found instances of 'findKey' + const results: { path: string; value: any }[] = []; + + // Exit early if the object is not an object (edge case for null or primitive values) + if (!isObject(obj)) return results; + + // Iterate over all keys in the object + forOwn(obj, (value, key) => { + // Construct the full path for the current key + const currentPath = parentPath ? `${parentPath}.${key}` : key; + + // If the key matches 'findKey', add its path and value to the results + if (key === findKey) { + results.push({ path: currentPath, value }); + } + + // If the value is an object (not null), recurse deeper into it + if (isObject(value)) { + // Recurse and accumulate results + results.push(...findKeyPathWithValue(value, findKey, currentPath)); + } + }); + + return results; +}; diff --git a/test/context/directory/flowVaultConnections.test.js b/test/context/directory/flowVaultConnections.test.js new file mode 100644 index 00000000..3aa43c51 --- /dev/null +++ b/test/context/directory/flowVaultConnections.test.js @@ -0,0 +1,76 @@ +import path from 'path'; + +import { expect } from 'chai'; +import { constants } from '../../../src/tools'; + +import Context from '../../../src/context/directory'; +import handler from '../../../src/context/directory/handlers/flowVaultConnections'; +import { loadJSON } from '../../../src/utils'; +import { cleanThenMkdir, testDataDir, createDir, mockMgmtClient } from '../../utils'; + +describe('#directory context flowVaultConnections', () => { + it('should process flowVaultConnections', async () => { + const files = { + [constants.FLOWS_VAULT_DIRECTORY]: { + 'Auth0 M2M Con #1.json': + '{ "name": "Auth0 M2M Con #1", "account_name": "domain_name", "app_id": "AUTH0", "ready": true }', + 'HTTP Con #1.json': '{ "name": "HTTP Con #1", "app_id": "HTTP", "ready": false }', + }, + }; + + const repoDir = path.join(testDataDir, 'directory', 'flowVaultConnections'); + createDir(repoDir, files); + + const config = { + AUTH0_INPUT_FILE: repoDir, + }; + const context = new Context(config, mockMgmtClient()); + await context.loadAssetsFromLocal(); + + const target = [ + { name: 'Auth0 M2M Con #1', account_name: 'domain_name', app_id: 'AUTH0', ready: true }, + { name: 'HTTP Con #1', app_id: 'HTTP', ready: false }, + ]; + expect(context.assets.flowVaultConnections).to.deep.equal(target); + }); + + it('should dump flowVaultConnections', async () => { + const dir = path.join(testDataDir, 'directory', 'flowVaultConnectionsDump'); + cleanThenMkdir(dir); + const context = new Context({ AUTH0_INPUT_FILE: dir }, mockMgmtClient()); + + context.assets.flowVaultConnections = [ + { name: 'Auth0 M2M Con #1', account_name: 'domain_name', app_id: 'AUTH0', ready: true }, + { name: 'HTTP Con #1', app_id: 'HTTP', ready: false }, + ]; + + await handler.dump(context); + const flowVaultConnectionsFolder = path.join(dir, constants.FLOWS_VAULT_DIRECTORY); + expect(loadJSON(path.join(flowVaultConnectionsFolder, 'Auth0 M2M Con #1.json'))).to.deep.equal( + context.assets.flowVaultConnections[0] + ); + expect(loadJSON(path.join(flowVaultConnectionsFolder, 'HTTP Con #1.json'))).to.deep.equal( + context.assets.flowVaultConnections[1] + ); + }); + + it('should dump flowVaultConnections sanitized', async () => { + const dir = path.join(testDataDir, 'directory', 'flowVaultConnectionsDump'); + cleanThenMkdir(dir); + const context = new Context({ AUTH0_INPUT_FILE: dir }, mockMgmtClient()); + + context.assets.flowVaultConnections = [ + { name: 'Auth0 M2M Con #1', account_name: 'domain_name', app_id: 'AUTH0', ready: true }, + { name: 'HTTP Con #1', app_id: 'HTTP', ready: false }, + ]; + + await handler.dump(context); + const clientFolder = path.join(dir, constants.FLOWS_VAULT_DIRECTORY); + expect(loadJSON(path.join(clientFolder, 'Auth0 M2M Con #1.json'))).to.deep.equal( + context.assets.flowVaultConnections[0] + ); + expect(loadJSON(path.join(clientFolder, 'HTTP Con #1.json'))).to.deep.equal( + context.assets.flowVaultConnections[1] + ); + }); +}); diff --git a/test/context/directory/flows.test.js b/test/context/directory/flows.test.js new file mode 100644 index 00000000..3ab859fa --- /dev/null +++ b/test/context/directory/flows.test.js @@ -0,0 +1,66 @@ +import path from 'path'; + +import { expect } from 'chai'; +import { constants } from '../../../src/tools'; + +import Context from '../../../src/context/directory'; +import handler from '../../../src/context/directory/handlers/flows'; +import { loadJSON } from '../../../src/utils'; +import { cleanThenMkdir, testDataDir, createDir, mockMgmtClient } from '../../utils'; + +describe('#directory context flows', () => { + it('should process flows', async () => { + const files = { + [constants.FLOWS_DIRECTORY]: { + 'someFlow.json': '{ "name": "someFlow" }', + 'someFlow2.json': '{ "name": "someFlow2" }', + }, + }; + + const repoDir = path.join(testDataDir, 'directory', 'flows'); + createDir(repoDir, files); + + const config = { + AUTH0_INPUT_FILE: repoDir, + }; + const context = new Context(config, mockMgmtClient()); + await context.loadAssetsFromLocal(); + + const target = [{ name: 'someFlow' }, { name: 'someFlow2' }]; + expect(context.assets.flows).to.deep.equal(target); + }); + + it('should dump flows', async () => { + const dir = path.join(testDataDir, 'directory', 'flowsDump'); + cleanThenMkdir(dir); + const context = new Context({ AUTH0_INPUT_FILE: dir }, mockMgmtClient()); + + context.assets.flows = [{ name: 'someFlow' }, { name: 'someFlow2' }]; + + await handler.dump(context); + const flowsFolder = path.join(dir, constants.FLOWS_DIRECTORY); + expect(loadJSON(path.join(flowsFolder, 'someFlow.json'))).to.deep.equal( + context.assets.flows[0] + ); + expect(loadJSON(path.join(flowsFolder, 'someFlow2.json'))).to.deep.equal( + context.assets.flows[1] + ); + }); + + it('should dump flows sanitized', async () => { + const dir = path.join(testDataDir, 'directory', 'flowsDump'); + cleanThenMkdir(dir); + const context = new Context({ AUTH0_INPUT_FILE: dir }, mockMgmtClient()); + + context.assets.flows = [{ name: 'someFlow' }, { name: 'someFlow2' }]; + + await handler.dump(context); + const clientFolder = path.join(dir, constants.FLOWS_DIRECTORY); + expect(loadJSON(path.join(clientFolder, 'someFlow.json'))).to.deep.equal( + context.assets.flows[0] + ); + expect(loadJSON(path.join(clientFolder, 'someFlow2.json'))).to.deep.equal( + context.assets.flows[1] + ); + }); +}); diff --git a/test/context/directory/forms.test.js b/test/context/directory/forms.test.js new file mode 100644 index 00000000..51111181 --- /dev/null +++ b/test/context/directory/forms.test.js @@ -0,0 +1,66 @@ +import path from 'path'; + +import { expect } from 'chai'; +import { constants } from '../../../src/tools'; + +import Context from '../../../src/context/directory'; +import handler from '../../../src/context/directory/handlers/forms'; +import { loadJSON } from '../../../src/utils'; +import { cleanThenMkdir, testDataDir, createDir, mockMgmtClient } from '../../utils'; + +describe('#directory context forms', () => { + it('should process forms', async () => { + const files = { + [constants.FORMS_DIRECTORY]: { + 'someForm.json': '{ "name": "someForm" }', + 'someForm2.json': '{ "name": "someForm2" }', + }, + }; + + const repoDir = path.join(testDataDir, 'directory', 'forms'); + createDir(repoDir, files); + + const config = { + AUTH0_INPUT_FILE: repoDir, + }; + const context = new Context(config, mockMgmtClient()); + await context.loadAssetsFromLocal(); + + const target = [{ name: 'someForm' }, { name: 'someForm2' }]; + expect(context.assets.forms).to.deep.equal(target); + }); + + it('should dump forms', async () => { + const dir = path.join(testDataDir, 'directory', 'formsDump'); + cleanThenMkdir(dir); + const context = new Context({ AUTH0_INPUT_FILE: dir }, mockMgmtClient()); + + context.assets.forms = [{ name: 'someForm' }, { name: 'someForm2' }]; + + await handler.dump(context); + const formsFolder = path.join(dir, constants.FORMS_DIRECTORY); + expect(loadJSON(path.join(formsFolder, 'someForm.json'))).to.deep.equal( + context.assets.forms[0] + ); + expect(loadJSON(path.join(formsFolder, 'someForm2.json'))).to.deep.equal( + context.assets.forms[1] + ); + }); + + it('should dump forms sanitized', async () => { + const dir = path.join(testDataDir, 'directory', 'formsDump'); + cleanThenMkdir(dir); + const context = new Context({ AUTH0_INPUT_FILE: dir }, mockMgmtClient()); + + context.assets.forms = [{ name: 'someForm' }, { name: 'someForm2' }]; + + await handler.dump(context); + const clientFolder = path.join(dir, constants.FORMS_DIRECTORY); + expect(loadJSON(path.join(clientFolder, 'someForm.json'))).to.deep.equal( + context.assets.forms[0] + ); + expect(loadJSON(path.join(clientFolder, 'someForm2.json'))).to.deep.equal( + context.assets.forms[1] + ); + }); +}); diff --git a/test/context/yaml/context.test.js b/test/context/yaml/context.test.js index faf475af..55c4e886 100644 --- a/test/context/yaml/context.test.js +++ b/test/context/yaml/context.test.js @@ -295,6 +295,9 @@ describe('#YAML context validation', () => { }, customDomains: [], themes: [], + flowVaultConnections: [], + flows: [], + forms: [], }); }); @@ -407,6 +410,9 @@ describe('#YAML context validation', () => { }, customDomains: [], themes: [], + flowVaultConnections: [], + flows: [], + forms: [], }); }); @@ -520,6 +526,9 @@ describe('#YAML context validation', () => { logStreams: [], customDomains: [], themes: [], + flowVaultConnections: [], + flows: [], + forms: [], }); }); diff --git a/test/context/yaml/flowVaultConnections.test.js b/test/context/yaml/flowVaultConnections.test.js new file mode 100644 index 00000000..7ac48491 --- /dev/null +++ b/test/context/yaml/flowVaultConnections.test.js @@ -0,0 +1,61 @@ +import path from 'path'; +import fs from 'fs-extra'; +import { expect } from 'chai'; +import { cloneDeep } from 'lodash'; + +import Context from '../../../src/context/yaml'; +import handler from '../../../src/context/yaml/handlers/flowVaultConnections'; +import { cleanThenMkdir, testDataDir, mockMgmtClient } from '../../utils'; + +describe('#YAML context flowVaultConnections', () => { + it('should process flowVaultConnections', async () => { + const dir = path.join(testDataDir, 'yaml', 'flowVaultConnections'); + cleanThenMkdir(dir); + + const yaml = ` + flowVaultConnections: + - + name: 'Auth0 M2M Con #1' + account_name: domain_name + app_id: AUTH0 + ready: true + - + name: 'HTTP Con #1' + app_id: HTTP + ready: false + `; + + const target = [ + { name: 'Auth0 M2M Con #1', account_name: 'domain_name', app_id: 'AUTH0', ready: true }, + { name: 'HTTP Con #1', app_id: 'HTTP', ready: false }, + ]; + + const yamlFile = path.join(dir, 'flowVaultConnection.yaml'); + fs.writeFileSync(yamlFile, yaml); + + const config = { AUTH0_INPUT_FILE: yamlFile }; + const context = new Context(config, mockMgmtClient()); + await context.loadAssetsFromLocal(); + expect(context.assets.flowVaultConnections).to.deep.equal(target); + }); + + it('should dump flowVaultConnections', async () => { + const dir = path.join(testDataDir, 'yaml', 'flowVaultConnections'); + cleanThenMkdir(dir); + const context = new Context( + { AUTH0_INPUT_FILE: path.join(dir, './flowVaultConnections.yml') }, + mockMgmtClient() + ); + + const flowVaultConnections = [ + { name: 'Auth0 M2M Con #1', account_name: 'domain_name', app_id: 'AUTH0', ready: true }, + { name: 'HTTP Con #1', app_id: 'HTTP', ready: false }, + ]; + + context.assets.flowVaultConnections = cloneDeep(flowVaultConnections); + + const dumped = await handler.dump(context); + + expect(dumped).to.deep.equal({ flowVaultConnections }); + }); +}); diff --git a/test/context/yaml/flows.test.js b/test/context/yaml/flows.test.js new file mode 100644 index 00000000..ad88afd4 --- /dev/null +++ b/test/context/yaml/flows.test.js @@ -0,0 +1,70 @@ +import path from 'path'; +import fs from 'fs-extra'; +import { expect } from 'chai'; + +import Context from '../../../src/context/yaml'; +import handler from '../../../src/context/yaml/handlers/flows'; +import { cleanThenMkdir, testDataDir, mockMgmtClient } from '../../utils'; + +describe('#YAML context flows', () => { + it('should process flows', async () => { + const dir = path.join(testDataDir, 'yaml', 'flows'); + cleanThenMkdir(dir); + + const yaml = ` + flows: + - + name: "Sample Flow 1" + body: ./flows/Sample Flow 1.json + - + name: "Sample Flow 2" + body: ./flows/Sample Flow 2.json + `; + + const target = [{ name: 'Sample Flow 1' }, { name: 'Sample Flow 2' }]; + + const yamlFile = path.join(dir, 'flows.yaml'); + const flowsPath = path.join(dir, 'flows'); + fs.writeFileSync(yamlFile, yaml); + fs.ensureDirSync(flowsPath); + fs.writeFileSync(path.join(flowsPath, 'Sample Flow 1.json'), '{"name": "Sample Flow 1"}'); + fs.writeFileSync(path.join(flowsPath, 'Sample Flow 2.json'), '{"name": "Sample Flow 2"}'); + + const config = { + AUTH0_INPUT_FILE: yamlFile, + }; + const context = new Context(config, mockMgmtClient()); + await context.loadAssetsFromLocal(); + + expect(context.assets.flows).to.deep.equal(target); + }); + + it('should dump flows', async () => { + const dir = path.join(testDataDir, 'yaml', 'flows'); + cleanThenMkdir(dir); + const context = new Context( + { AUTH0_INPUT_FILE: path.join(dir, './test.yml') }, + mockMgmtClient() + ); + + const flows = [{ name: 'Sample Flow 1' }, { name: 'Sample Flow 2' }]; + + const target = [ + { name: 'Sample Flow 1', body: './flows/Sample Flow 1.json' }, + { name: 'Sample Flow 2', body: './flows/Sample Flow 2.json' }, + ]; + + context.assets.flows = flows; + + const dumped = await handler.dump(context); + const flowsFolder = path.join(dir, 'flows'); + + expect(dumped).to.deep.equal({ flows: target }); + expect( + JSON.parse(fs.readFileSync(path.join(flowsFolder, 'Sample Flow 1.json'), 'utf8')) + ).to.deep.equal({ name: 'Sample Flow 1' }); + expect( + JSON.parse(fs.readFileSync(path.join(flowsFolder, 'Sample Flow 2.json'), 'utf8')) + ).to.deep.equal({ name: 'Sample Flow 2' }); + }); +}); diff --git a/test/context/yaml/forms.test.js b/test/context/yaml/forms.test.js new file mode 100644 index 00000000..179f0d0a --- /dev/null +++ b/test/context/yaml/forms.test.js @@ -0,0 +1,70 @@ +import path from 'path'; +import fs from 'fs-extra'; +import { expect } from 'chai'; + +import Context from '../../../src/context/yaml'; +import handler from '../../../src/context/yaml/handlers/forms'; +import { cleanThenMkdir, testDataDir, mockMgmtClient } from '../../utils'; + +describe('#YAML context forms', () => { + it('should process forms', async () => { + const dir = path.join(testDataDir, 'yaml', 'forms'); + cleanThenMkdir(dir); + + const yaml = ` + forms: + - + name: "Sample Form 1" + body: ./forms/Sample Form 1.json + - + name: "Sample Form 2" + body: ./forms/Sample Form 2.json + `; + + const target = [{ name: 'Sample Form 1' }, { name: 'Sample Form 2' }]; + + const yamlFile = path.join(dir, 'forms.yaml'); + const formsPath = path.join(dir, 'forms'); + fs.writeFileSync(yamlFile, yaml); + fs.ensureDirSync(formsPath); + fs.writeFileSync(path.join(formsPath, 'Sample Form 1.json'), '{"name": "Sample Form 1"}'); + fs.writeFileSync(path.join(formsPath, 'Sample Form 2.json'), '{"name": "Sample Form 2"}'); + + const config = { + AUTH0_INPUT_FILE: yamlFile, + }; + const context = new Context(config, mockMgmtClient()); + await context.loadAssetsFromLocal(); + + expect(context.assets.forms).to.deep.equal(target); + }); + + it('should dump forms', async () => { + const dir = path.join(testDataDir, 'yaml', 'forms'); + cleanThenMkdir(dir); + const context = new Context( + { AUTH0_INPUT_FILE: path.join(dir, './test.yml') }, + mockMgmtClient() + ); + + const forms = [{ name: 'Sample Form 1' }, { name: 'Sample Form 2' }]; + + const target = [ + { name: 'Sample Form 1', body: './forms/Sample Form 1.json' }, + { name: 'Sample Form 2', body: './forms/Sample Form 2.json' }, + ]; + + context.assets.forms = forms; + + const dumped = await handler.dump(context); + const formsFolder = path.join(dir, 'forms'); + + expect(dumped).to.deep.equal({ forms: target }); + expect( + JSON.parse(fs.readFileSync(path.join(formsFolder, 'Sample Form 1.json'), 'utf8')) + ).to.deep.equal({ name: 'Sample Form 1' }); + expect( + JSON.parse(fs.readFileSync(path.join(formsFolder, 'Sample Form 2.json'), 'utf8')) + ).to.deep.equal({ name: 'Sample Form 2' }); + }); +}); diff --git a/test/e2e/recordings/should-deploy-while-deleting-resources-if-AUTH0_ALLOW_DELETE-is-true.json b/test/e2e/recordings/should-deploy-while-deleting-resources-if-AUTH0_ALLOW_DELETE-is-true.json index 6224c03d..0f557bd0 100644 --- a/test/e2e/recordings/should-deploy-while-deleting-resources-if-AUTH0_ALLOW_DELETE-is-true.json +++ b/test/e2e/recordings/should-deploy-while-deleting-resources-if-AUTH0_ALLOW_DELETE-is-true.json @@ -11,7 +11,7 @@ "limit": 100, "rules": [ { - "id": "rul_leMju5CJAwJe3nkj", + "id": "rul_ANXcw440qOoeEht3", "enabled": true, "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", "name": "my-rule", @@ -35,7 +35,7 @@ "limit": 100, "rules": [ { - "id": "rul_leMju5CJAwJe3nkj", + "id": "rul_ANXcw440qOoeEht3", "enabled": true, "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", "name": "my-rule", @@ -50,7 +50,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/rules/rul_leMju5CJAwJe3nkj", + "path": "/api/v2/rules/rul_ANXcw440qOoeEht3", "body": { "name": "my-rule", "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", @@ -59,7 +59,7 @@ }, "status": 200, "response": { - "id": "rul_leMju5CJAwJe3nkj", + "id": "rul_ANXcw440qOoeEht3", "enabled": true, "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", "name": "my-rule", @@ -1148,7 +1148,7 @@ "subject": "deprecated" } ], - "client_id": "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1201,7 +1201,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1221,21 +1221,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -1255,8 +1246,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1264,25 +1254,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -1302,7 +1299,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1310,21 +1308,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -1346,7 +1346,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1399,7 +1399,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1421,9 +1421,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -1437,13 +1442,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -1454,7 +1459,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1463,10 +1468,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -1474,14 +1484,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -1495,13 +1500,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -1512,7 +1517,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1521,15 +1526,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true } @@ -1541,7 +1541,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/clients/gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "path": "/api/v2/clients/SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "body": "", "status": 204, "response": "", @@ -1551,7 +1551,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "path": "/api/v2/clients/43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "body": { "name": "API Explorer Application", "allowed_clients": [], @@ -1629,7 +1629,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1651,7 +1651,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "path": "/api/v2/clients/ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "body": { "name": "Node App", "allowed_clients": [], @@ -1737,7 +1737,7 @@ } ], "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1763,7 +1763,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "path": "/api/v2/clients/XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "body": { "name": "Quickstarts API (Test Application)", "app_type": "non_interactive", @@ -1824,7 +1824,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1845,7 +1845,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "path": "/api/v2/clients/PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "body": { "name": "Terraform Provider", "app_type": "non_interactive", @@ -1900,7 +1900,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1921,17 +1921,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "path": "/api/v2/clients/8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "body": { - "name": "Test SPA", + "name": "The Default App", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "app_type": "spa", - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_aliases": [], "client_metadata": {}, "cross_origin_auth": false, @@ -1939,7 +1933,8 @@ "grant_types": [ "authorization_code", "implicit", - "refresh_token" + "refresh_token", + "client_credentials" ], "is_first_party": true, "is_token_endpoint_ip_header_trusted": false, @@ -1955,35 +1950,28 @@ "enabled": false } }, - "oidc_conformant": true, + "oidc_conformant": false, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, "token_lifetime": 2592000, "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "rotation_type": "non-rotating" }, + "sso": false, "sso_disabled": false, - "token_endpoint_auth_method": "none", - "web_origins": [ - "http://localhost:3000" - ] + "token_endpoint_auth_method": "client_secret_post" }, "status": 200, "response": { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "The Default App", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -1995,16 +1983,17 @@ "enabled": false } }, - "oidc_conformant": true, + "oidc_conformant": false, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, "token_lifetime": 2592000, "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "rotation_type": "non-rotating" }, + "sso": false, "sso_disabled": false, "cross_origin_authentication": false, "signing_keys": [ @@ -2014,7 +2003,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -2023,15 +2012,12 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", "grant_types": [ "authorization_code", "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "refresh_token", + "client_credentials" ], "custom_login_page_on": true }, @@ -2041,11 +2027,17 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "path": "/api/v2/clients/JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "body": { - "name": "The Default App", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "app_type": "spa", + "callbacks": [ + "http://localhost:3000" + ], "client_aliases": [], "client_metadata": {}, "cross_origin_auth": false, @@ -2053,8 +2045,7 @@ "grant_types": [ "authorization_code", "implicit", - "refresh_token", - "client_credentials" + "refresh_token" ], "is_first_party": true, "is_token_endpoint_ip_header_trusted": false, @@ -2070,28 +2061,35 @@ "enabled": false } }, - "oidc_conformant": false, + "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, "token_lifetime": 2592000, "idle_token_lifetime": 1296000, - "rotation_type": "non-rotating" + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, - "sso": false, "sso_disabled": false, - "token_endpoint_auth_method": "client_secret_post" + "token_endpoint_auth_method": "none", + "web_origins": [ + "http://localhost:3000" + ] }, "status": 200, "response": { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "The Default App", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -2103,17 +2101,16 @@ "enabled": false } }, - "oidc_conformant": false, + "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, "token_lifetime": 2592000, "idle_token_lifetime": 1296000, - "rotation_type": "non-rotating" + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, - "sso": false, "sso_disabled": false, "cross_origin_authentication": false, "signing_keys": [ @@ -2123,7 +2120,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -2132,12 +2129,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ "authorization_code", "implicit", - "refresh_token", - "client_credentials" + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -2147,7 +2147,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "path": "/api/v2/clients/tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "body": { "name": "auth0-deploy-cli-extension", "allowed_clients": [], @@ -2225,7 +2225,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -2312,7 +2312,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/otp", + "path": "/api/v2/guardian/factors/recovery-code", "body": { "enabled": false }, @@ -2326,7 +2326,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/recovery-code", + "path": "/api/v2/guardian/factors/webauthn-roaming", "body": { "enabled": false }, @@ -2340,13 +2340,13 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/webauthn-platform", + "path": "/api/v2/guardian/factors/push-notification", "body": { - "enabled": false + "enabled": true }, "status": 200, "response": { - "enabled": false + "enabled": true }, "rawHeaders": [], "responseIsBinary": false @@ -2354,13 +2354,13 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/push-notification", + "path": "/api/v2/guardian/factors/webauthn-platform", "body": { - "enabled": true + "enabled": false }, "status": 200, "response": { - "enabled": true + "enabled": false }, "rawHeaders": [], "responseIsBinary": false @@ -2368,7 +2368,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/webauthn-roaming", + "path": "/api/v2/guardian/factors/sms", "body": { "enabled": false }, @@ -2382,7 +2382,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/sms", + "path": "/api/v2/guardian/factors/otp", "body": { "enabled": false }, @@ -2454,9 +2454,34 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/attack-protection/suspicious-ip-throttling", + "path": "/api/v2/attack-protection/breached-password-detection", "body": { - "enabled": true, + "enabled": false, + "shields": [], + "admin_notification_frequency": [], + "method": "standard" + }, + "status": 200, + "response": { + "enabled": false, + "shields": [], + "admin_notification_frequency": [], + "method": "standard", + "stage": { + "pre-user-registration": { + "shields": [] + } + } + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/attack-protection/suspicious-ip-throttling", + "body": { + "enabled": true, "shields": [ "admin_notification" ], @@ -2525,31 +2550,6 @@ "rawHeaders": [], "responseIsBinary": false }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PATCH", - "path": "/api/v2/attack-protection/breached-password-detection", - "body": { - "enabled": false, - "shields": [], - "admin_notification_frequency": [], - "method": "standard" - }, - "status": 200, - "response": { - "enabled": false, - "shields": [], - "admin_notification_frequency": [], - "method": "standard", - "stage": { - "pre-user-registration": { - "shields": [] - } - } - }, - "rawHeaders": [], - "responseIsBinary": false - }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -2558,14 +2558,14 @@ "status": 200, "response": [ { - "id": "lst_0000000000018505", + "id": "lst_0000000000018536", "name": "Amazon EventBridge", "type": "eventbridge", "status": "active", "sink": { "awsAccountId": "123456789012", "awsRegion": "us-east-2", - "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-f468b793-c845-418d-b2fc-a2c38a604a73/auth0.logs" + "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-a295e235-1e5f-4e06-b2dd-94469edb676f/auth0.logs" }, "filters": [ { @@ -2608,7 +2608,7 @@ "isPriority": false }, { - "id": "lst_0000000000018504", + "id": "lst_0000000000018537", "name": "Suspended DD Log Stream", "type": "datadog", "status": "active", @@ -2625,33 +2625,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/log-streams/lst_0000000000018504", - "body": { - "name": "Suspended DD Log Stream", - "sink": { - "datadogApiKey": "some-sensitive-api-key", - "datadogRegion": "us" - } - }, - "status": 200, - "response": { - "id": "lst_0000000000018504", - "name": "Suspended DD Log Stream", - "type": "datadog", - "status": "active", - "sink": { - "datadogApiKey": "some-sensitive-api-key", - "datadogRegion": "us" - }, - "isPriority": false - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PATCH", - "path": "/api/v2/log-streams/lst_0000000000018505", + "path": "/api/v2/log-streams/lst_0000000000018536", "body": { "name": "Amazon EventBridge", "filters": [ @@ -2696,14 +2670,14 @@ }, "status": 200, "response": { - "id": "lst_0000000000018505", + "id": "lst_0000000000018536", "name": "Amazon EventBridge", "type": "eventbridge", "status": "active", "sink": { "awsAccountId": "123456789012", "awsRegion": "us-east-2", - "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-f468b793-c845-418d-b2fc-a2c38a604a73/auth0.logs" + "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-a295e235-1e5f-4e06-b2dd-94469edb676f/auth0.logs" }, "filters": [ { @@ -2748,6 +2722,32 @@ "rawHeaders": [], "responseIsBinary": false }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/log-streams/lst_0000000000018537", + "body": { + "name": "Suspended DD Log Stream", + "sink": { + "datadogApiKey": "some-sensitive-api-key", + "datadogRegion": "us" + } + }, + "status": 200, + "response": { + "id": "lst_0000000000018537", + "name": "Suspended DD Log Stream", + "type": "datadog", + "status": "active", + "sink": { + "datadogApiKey": "some-sensitive-api-key", + "datadogRegion": "us" + }, + "isPriority": false + }, + "rawHeaders": [], + "responseIsBinary": false + }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -2837,7 +2837,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -2857,21 +2857,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -2891,8 +2882,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -2900,25 +2890,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -2938,7 +2935,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -2946,21 +2944,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -2982,7 +2982,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3035,7 +3035,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3057,9 +3057,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -3073,13 +3078,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -3090,7 +3095,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3099,10 +3104,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -3110,14 +3120,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -3131,13 +3136,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -3148,7 +3153,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3157,15 +3162,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true }, @@ -3221,7 +3221,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -3277,12 +3277,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, @@ -3332,7 +3332,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -3388,12 +3388,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, @@ -3434,11 +3434,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/connections/con_WFP0F318RCvc1yPr", + "path": "/api/v2/connections/con_7tTU8dpv9keeCE5Q", "body": "", "status": 202, "response": { - "deleted_at": "2024-11-07T10:03:05.564Z" + "deleted_at": "2024-11-15T11:11:32.142Z" }, "rawHeaders": [], "responseIsBinary": false @@ -3446,11 +3446,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/connections/con_isbl83K0EyW745Cg", + "path": "/api/v2/connections/con_Jd86qQK1FtuUb7xn", "body": "", "status": 200, "response": { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -3503,8 +3503,8 @@ "name": "boo-baz-db-connection-test", "is_domain_connection": false, "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ], "realms": [ "boo-baz-db-connection-test" @@ -3516,11 +3516,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/connections/con_isbl83K0EyW745Cg", + "path": "/api/v2/connections/con_Jd86qQK1FtuUb7xn", "body": { "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ], "is_domain_connection": false, "options": { @@ -3577,7 +3577,7 @@ }, "status": 200, "response": { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -3630,8 +3630,8 @@ "name": "boo-baz-db-connection-test", "is_domain_connection": false, "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ], "realms": [ "boo-baz-db-connection-test" @@ -3729,7 +3729,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3749,21 +3749,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -3783,8 +3774,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3792,25 +3782,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -3830,7 +3827,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3838,21 +3836,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -3874,7 +3874,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3927,7 +3927,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3949,9 +3949,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -3965,13 +3970,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -3982,7 +3987,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3991,10 +3996,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -4002,14 +4012,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -4023,13 +4028,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -4040,7 +4045,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -4049,15 +4054,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true }, @@ -4113,7 +4113,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -4169,12 +4169,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -4190,7 +4190,8 @@ "google-oauth2" ], "enabled_clients": [ - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ] } ] @@ -4210,7 +4211,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -4266,12 +4267,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -4287,7 +4288,8 @@ "google-oauth2" ], "enabled_clients": [ - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ] } ] @@ -4298,11 +4300,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/connections/con_A4te7zSEQoMDxaQb", + "path": "/api/v2/connections/con_SSAQuf1eAS4HALWp", "body": { "enabled_clients": [ - "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ], "is_domain_connection": false, "options": { @@ -4316,7 +4318,7 @@ }, "status": 200, "response": { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -4329,8 +4331,8 @@ "name": "google-oauth2", "is_domain_connection": false, "enabled_clients": [ - "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ], "realms": [ "google-oauth2" @@ -4342,25 +4344,27 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/email-templates/verify_email", + "path": "/api/v2/email-templates/welcome_email", "body": { - "template": "verify_email", - "body": "\n \n \n \n \n
\n \n \n \n
\n \n \n

\n\n

Welcome to {{ application.name}}!

\n\n

\n Thank you for signing up. Please verify your email address by clicking the following\n link:\n

\n\n

Confirm my account

\n\n

\n If you are having any issues with your account, please don’t hesitate to contact us\n by replying to this mail.\n

\n\n
\n Haha!!!\n
\n\n {{ application.name }}\n\n

\n
\n \n If you did not make this request, please contact us by replying to this mail.\n

\n
\n \n \n \n
\n \n\n", - "enabled": true, + "template": "welcome_email", + "body": "\n \n

Welcome!

\n \n\n", + "enabled": false, "from": "", - "subject": "", + "resultUrl": "https://example.com/welcome", + "subject": "Welcome", "syntax": "liquid", - "urlLifetimeInSeconds": 432000 + "urlLifetimeInSeconds": 3600 }, "status": 200, "response": { - "template": "verify_email", - "body": "\n \n \n \n \n
\n \n \n \n
\n \n \n

\n\n

Welcome to {{ application.name}}!

\n\n

\n Thank you for signing up. Please verify your email address by clicking the following\n link:\n

\n\n

Confirm my account

\n\n

\n If you are having any issues with your account, please don’t hesitate to contact us\n by replying to this mail.\n

\n\n
\n Haha!!!\n
\n\n {{ application.name }}\n\n

\n
\n \n If you did not make this request, please contact us by replying to this mail.\n

\n
\n \n \n \n
\n \n\n", + "template": "welcome_email", + "body": "\n \n

Welcome!

\n \n\n", "from": "", - "subject": "", + "resultUrl": "https://example.com/welcome", + "subject": "Welcome", "syntax": "liquid", - "urlLifetimeInSeconds": 432000, - "enabled": true + "urlLifetimeInSeconds": 3600, + "enabled": false }, "rawHeaders": [], "responseIsBinary": false @@ -4368,27 +4372,25 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/email-templates/welcome_email", + "path": "/api/v2/email-templates/verify_email", "body": { - "template": "welcome_email", - "body": "\n \n

Welcome!

\n \n\n", - "enabled": false, + "template": "verify_email", + "body": "\n \n \n \n \n
\n \n \n \n
\n \n \n

\n\n

Welcome to {{ application.name}}!

\n\n

\n Thank you for signing up. Please verify your email address by clicking the following\n link:\n

\n\n

Confirm my account

\n\n

\n If you are having any issues with your account, please don’t hesitate to contact us\n by replying to this mail.\n

\n\n
\n Haha!!!\n
\n\n {{ application.name }}\n\n

\n
\n \n If you did not make this request, please contact us by replying to this mail.\n

\n
\n \n \n \n
\n \n\n", + "enabled": true, "from": "", - "resultUrl": "https://example.com/welcome", - "subject": "Welcome", + "subject": "", "syntax": "liquid", - "urlLifetimeInSeconds": 3600 + "urlLifetimeInSeconds": 432000 }, "status": 200, "response": { - "template": "welcome_email", - "body": "\n \n

Welcome!

\n \n\n", + "template": "verify_email", + "body": "\n \n \n \n \n
\n \n \n \n
\n \n \n

\n\n

Welcome to {{ application.name}}!

\n\n

\n Thank you for signing up. Please verify your email address by clicking the following\n link:\n

\n\n

Confirm my account

\n\n

\n If you are having any issues with your account, please don’t hesitate to contact us\n by replying to this mail.\n

\n\n
\n Haha!!!\n
\n\n {{ application.name }}\n\n

\n
\n \n If you did not make this request, please contact us by replying to this mail.\n

\n
\n \n \n \n
\n \n\n", "from": "", - "resultUrl": "https://example.com/welcome", - "subject": "Welcome", + "subject": "", "syntax": "liquid", - "urlLifetimeInSeconds": 3600, - "enabled": false + "urlLifetimeInSeconds": 432000, + "enabled": true }, "rawHeaders": [], "responseIsBinary": false @@ -4482,7 +4484,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -4502,21 +4504,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -4536,8 +4529,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -4545,25 +4537,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -4583,7 +4582,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -4591,21 +4591,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -4627,7 +4629,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -4680,7 +4682,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -4702,9 +4704,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -4718,13 +4725,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -4735,7 +4742,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -4744,10 +4751,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -4755,14 +4767,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -4776,13 +4783,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -4793,7 +4800,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -4802,15 +4809,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true }, @@ -4866,8 +4868,8 @@ "limit": 100, "client_grants": [ { - "id": "cgr_8IA0dLwj49O8P0R0", - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -5003,8 +5005,8 @@ ] }, { - "id": "cgr_V6CMP7ClGUswJBhB", - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -5343,7 +5345,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/client-grants/cgr_8IA0dLwj49O8P0R0", + "path": "/api/v2/client-grants/cgr_KE5stboZltPop0tc", "body": { "scope": [ "read:client_grants", @@ -5480,8 +5482,8 @@ }, "status": 200, "response": { - "id": "cgr_8IA0dLwj49O8P0R0", - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -5622,7 +5624,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/client-grants/cgr_V6CMP7ClGUswJBhB", + "path": "/api/v2/client-grants/cgr_XRy0Lk9J8dl7iIt0", "body": { "scope": [ "read:client_grants", @@ -5759,8 +5761,8 @@ }, "status": 200, "response": { - "id": "cgr_V6CMP7ClGUswJBhB", - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -5907,22 +5909,22 @@ "response": { "roles": [ { - "id": "rol_TRRzPxsQJyJTM3ll", + "id": "rol_UwW0xVAq4Df6F6tI", "name": "Admin", "description": "Can read and write things" }, { - "id": "rol_zKNIBuPjhxjGVlNh", + "id": "rol_VucPDNsmC49E1OCe", "name": "Reader", "description": "Can only read things" }, { - "id": "rol_YIcCCf9DuxYBLew3", + "id": "rol_Hgy6WgWIaceJ4YzE", "name": "read_only", "description": "Read Only" }, { - "id": "rol_Vf5h2h0CTRtIKU5Q", + "id": "rol_IMHAwOaDJpqdiH2x", "name": "read_osnly", "description": "Readz Only" } @@ -5937,7 +5939,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_TRRzPxsQJyJTM3ll/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_UwW0xVAq4Df6F6tI/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -5952,7 +5954,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_zKNIBuPjhxjGVlNh/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_VucPDNsmC49E1OCe/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -5967,7 +5969,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_YIcCCf9DuxYBLew3/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_Hgy6WgWIaceJ4YzE/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -5982,7 +5984,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_Vf5h2h0CTRtIKU5Q/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_IMHAwOaDJpqdiH2x/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -5997,16 +5999,16 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/roles/rol_zKNIBuPjhxjGVlNh", + "path": "/api/v2/roles/rol_UwW0xVAq4Df6F6tI", "body": { - "name": "Reader", - "description": "Can only read things" + "name": "Admin", + "description": "Can read and write things" }, "status": 200, "response": { - "id": "rol_zKNIBuPjhxjGVlNh", - "name": "Reader", - "description": "Can only read things" + "id": "rol_UwW0xVAq4Df6F6tI", + "name": "Admin", + "description": "Can read and write things" }, "rawHeaders": [], "responseIsBinary": false @@ -6014,16 +6016,16 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/roles/rol_TRRzPxsQJyJTM3ll", + "path": "/api/v2/roles/rol_VucPDNsmC49E1OCe", "body": { - "name": "Admin", - "description": "Can read and write things" + "name": "Reader", + "description": "Can only read things" }, "status": 200, "response": { - "id": "rol_TRRzPxsQJyJTM3ll", - "name": "Admin", - "description": "Can read and write things" + "id": "rol_VucPDNsmC49E1OCe", + "name": "Reader", + "description": "Can only read things" }, "rawHeaders": [], "responseIsBinary": false @@ -6031,14 +6033,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/roles/rol_YIcCCf9DuxYBLew3", + "path": "/api/v2/roles/rol_Hgy6WgWIaceJ4YzE", "body": { "name": "read_only", "description": "Read Only" }, "status": 200, "response": { - "id": "rol_YIcCCf9DuxYBLew3", + "id": "rol_Hgy6WgWIaceJ4YzE", "name": "read_only", "description": "Read Only" }, @@ -6048,14 +6050,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/roles/rol_Vf5h2h0CTRtIKU5Q", + "path": "/api/v2/roles/rol_IMHAwOaDJpqdiH2x", "body": { "name": "read_osnly", "description": "Readz Only" }, "status": 200, "response": { - "id": "rol_Vf5h2h0CTRtIKU5Q", + "id": "rol_IMHAwOaDJpqdiH2x", "name": "read_osnly", "description": "Readz Only" }, @@ -6071,7 +6073,7 @@ "response": { "actions": [ { - "id": "e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "name": "My Custom Action", "supported_triggers": [ { @@ -6079,34 +6081,34 @@ "version": "v2" } ], - "created_at": "2024-11-06T10:00:17.236448055Z", - "updated_at": "2024-11-07T10:00:22.140289063Z", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:10:23.631836207Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "built", "secrets": [], "current_version": { - "id": "521210bf-7642-49f4-8b8f-0dd1d6176633", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", - "number": 2, - "build_time": "2024-11-07T10:00:22.949587433Z", - "created_at": "2024-11-07T10:00:22.876554394Z", - "updated_at": "2024-11-07T10:00:22.951905242Z" + "number": 3, + "build_time": "2024-11-15T11:10:24.505104975Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "521210bf-7642-49f4-8b8f-0dd1d6176633", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "deployed": true, - "number": 2, - "built_at": "2024-11-07T10:00:22.949587433Z", + "number": 3, + "built_at": "2024-11-15T11:10:24.505104975Z", "secrets": [], "status": "built", - "created_at": "2024-11-07T10:00:22.876554394Z", - "updated_at": "2024-11-07T10:00:22.951905242Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z", "runtime": "node16", "supported_triggers": [ { @@ -6127,7 +6129,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/actions/actions/e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "path": "/api/v2/actions/actions/f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "body": { "name": "My Custom Action", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", @@ -6143,7 +6145,7 @@ }, "status": 200, "response": { - "id": "e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "name": "My Custom Action", "supported_triggers": [ { @@ -6151,34 +6153,34 @@ "version": "v2" } ], - "created_at": "2024-11-06T10:00:17.236448055Z", - "updated_at": "2024-11-07T10:03:12.847471658Z", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:11:39.131649018Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "pending", "secrets": [], "current_version": { - "id": "521210bf-7642-49f4-8b8f-0dd1d6176633", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", - "number": 2, - "build_time": "2024-11-07T10:00:22.949587433Z", - "created_at": "2024-11-07T10:00:22.876554394Z", - "updated_at": "2024-11-07T10:00:22.951905242Z" + "number": 3, + "build_time": "2024-11-15T11:10:24.505104975Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "521210bf-7642-49f4-8b8f-0dd1d6176633", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "deployed": true, - "number": 2, - "built_at": "2024-11-07T10:00:22.949587433Z", + "number": 3, + "built_at": "2024-11-15T11:10:24.505104975Z", "secrets": [], "status": "built", - "created_at": "2024-11-07T10:00:22.876554394Z", - "updated_at": "2024-11-07T10:00:22.951905242Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z", "runtime": "node16", "supported_triggers": [ { @@ -6201,7 +6203,7 @@ "response": { "actions": [ { - "id": "e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "name": "My Custom Action", "supported_triggers": [ { @@ -6209,34 +6211,34 @@ "version": "v2" } ], - "created_at": "2024-11-06T10:00:17.236448055Z", - "updated_at": "2024-11-07T10:03:12.847471658Z", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:11:39.131649018Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "built", "secrets": [], "current_version": { - "id": "521210bf-7642-49f4-8b8f-0dd1d6176633", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", - "number": 2, - "build_time": "2024-11-07T10:00:22.949587433Z", - "created_at": "2024-11-07T10:00:22.876554394Z", - "updated_at": "2024-11-07T10:00:22.951905242Z" + "number": 3, + "build_time": "2024-11-15T11:10:24.505104975Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "521210bf-7642-49f4-8b8f-0dd1d6176633", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "deployed": true, - "number": 2, - "built_at": "2024-11-07T10:00:22.949587433Z", + "number": 3, + "built_at": "2024-11-15T11:10:24.505104975Z", "secrets": [], "status": "built", - "created_at": "2024-11-07T10:00:22.876554394Z", - "updated_at": "2024-11-07T10:00:22.951905242Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z", "runtime": "node16", "supported_triggers": [ { @@ -6257,19 +6259,19 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "POST", - "path": "/api/v2/actions/actions/e8d56dc9-de98-4c0c-8b8a-456807f63fb0/deploy", + "path": "/api/v2/actions/actions/f921cc75-2b3b-4dd8-b1dd-d3c12f61df11/deploy", "body": "", "status": 200, "response": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "60bb32e1-1573-4d52-b8b4-814f93669b3d", + "id": "5dfdf1de-3737-4d7d-952b-abf9822158ea", "deployed": false, - "number": 3, + "number": 4, "secrets": [], "status": "built", - "created_at": "2024-11-07T10:03:13.559000939Z", - "updated_at": "2024-11-07T10:03:13.559000939Z", + "created_at": "2024-11-15T11:11:39.841219169Z", + "updated_at": "2024-11-15T11:11:39.841219169Z", "runtime": "node16", "supported_triggers": [ { @@ -6278,7 +6280,7 @@ } ], "action": { - "id": "e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "name": "My Custom Action", "supported_triggers": [ { @@ -6286,8 +6288,8 @@ "version": "v2" } ], - "created_at": "2024-11-06T10:00:17.236448055Z", - "updated_at": "2024-11-07T10:03:12.839004802Z", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:11:39.124100952Z", "all_changes_deployed": false } }, @@ -6303,7 +6305,7 @@ "response": { "organizations": [ { - "id": "org_98JjeO1GOLPTEzMw", + "id": "org_U1GPowP5fHVuX9iS", "name": "org1", "display_name": "Organization", "branding": { @@ -6314,7 +6316,7 @@ } }, { - "id": "org_sqjTOFGOVZmKWPsI", + "id": "org_TyQVczsJUGAC5u58", "name": "org2", "display_name": "Organization2" } @@ -6415,7 +6417,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6435,21 +6437,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -6469,8 +6462,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6478,25 +6470,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -6516,7 +6515,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6524,21 +6524,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -6560,7 +6562,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6613,7 +6615,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6635,9 +6637,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -6651,13 +6658,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -6668,7 +6675,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6677,10 +6684,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -6688,14 +6700,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -6709,13 +6716,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -6726,7 +6733,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6735,15 +6742,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true }, @@ -6790,7 +6792,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw/enabled_connections", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/enabled_connections", "body": "", "status": 200, "response": [], @@ -6800,7 +6802,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw/client-grants?page=0&per_page=100&include_totals=true", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/client-grants?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { @@ -6815,7 +6817,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI/enabled_connections", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/enabled_connections", "body": "", "status": 200, "response": [], @@ -6825,7 +6827,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI/client-grants?page=0&per_page=100&include_totals=true", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/client-grants?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { @@ -6849,7 +6851,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -6905,12 +6907,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -6926,8 +6928,8 @@ "google-oauth2" ], "enabled_clients": [ - "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ] } ] @@ -6947,8 +6949,8 @@ "limit": 100, "client_grants": [ { - "id": "cgr_8IA0dLwj49O8P0R0", - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -7084,8 +7086,8 @@ ] }, { - "id": "cgr_V6CMP7ClGUswJBhB", - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -7510,7 +7512,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7530,21 +7532,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -7564,8 +7557,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7573,25 +7565,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -7611,7 +7610,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7619,21 +7619,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -7655,7 +7657,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7694,66 +7696,11 @@ "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "rotation_type": "non-rotating" - }, - "sso": false, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", - "client_credentials" - ], - "custom_login_page_on": true - }, - { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", - "allowed_clients": [], - "callbacks": [], - "client_metadata": {}, - "cross_origin_auth": false, - "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, "rotation_type": "non-rotating" }, + "sso": false, "sso_disabled": false, "cross_origin_authentication": false, "signing_keys": [ @@ -7763,7 +7710,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7773,8 +7720,10 @@ }, "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], "custom_login_page_on": true @@ -7821,7 +7770,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7842,6 +7791,59 @@ ], "custom_login_page_on": true }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "auth0-deploy-cli-extension", + "allowed_clients": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true + }, { "tenant": "auth0-deploy-cli-e2e", "global": true, @@ -7885,7 +7887,23 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58", + "body": { + "display_name": "Organization2" + }, + "status": 200, + "response": { + "id": "org_TyQVczsJUGAC5u58", + "display_name": "Organization2", + "name": "org2" + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS", "body": { "branding": { "colors": { @@ -7903,29 +7921,13 @@ "primary": "#57ddff" } }, - "id": "org_98JjeO1GOLPTEzMw", + "id": "org_U1GPowP5fHVuX9iS", "display_name": "Organization", "name": "org1" }, "rawHeaders": [], "responseIsBinary": false }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PATCH", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI", - "body": { - "display_name": "Organization2" - }, - "status": 200, - "response": { - "id": "org_sqjTOFGOVZmKWPsI", - "display_name": "Organization2", - "name": "org2" - }, - "rawHeaders": [], - "responseIsBinary": false - }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", @@ -8040,7 +8042,7 @@ "limit": 100, "rules": [ { - "id": "rul_leMju5CJAwJe3nkj", + "id": "rul_ANXcw440qOoeEht3", "enabled": true, "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", "name": "my-rule", @@ -8064,7 +8066,7 @@ "limit": 100, "rules": [ { - "id": "rul_leMju5CJAwJe3nkj", + "id": "rul_ANXcw440qOoeEht3", "enabled": true, "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", "name": "my-rule", @@ -8079,7 +8081,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/rules/rul_leMju5CJAwJe3nkj", + "path": "/api/v2/rules/rul_ANXcw440qOoeEht3", "body": "", "status": 204, "response": "", @@ -8994,7 +8996,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9014,21 +9016,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -9048,8 +9041,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9057,25 +9049,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -9095,7 +9094,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9103,21 +9103,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -9139,7 +9141,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9192,7 +9194,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9214,9 +9216,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -9230,13 +9237,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -9247,7 +9254,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9256,10 +9263,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -9267,14 +9279,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -9288,13 +9295,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -9305,7 +9312,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9314,15 +9321,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true } @@ -9334,7 +9336,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/clients/qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "path": "/api/v2/clients/43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "body": "", "status": 204, "response": "", @@ -9344,7 +9346,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/clients/6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "path": "/api/v2/clients/ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "body": "", "status": 204, "response": "", @@ -9354,7 +9356,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/clients/JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "path": "/api/v2/clients/XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "body": "", "status": 204, "response": "", @@ -9364,7 +9366,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/clients/TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "path": "/api/v2/clients/PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "body": "", "status": 204, "response": "", @@ -9374,7 +9376,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/clients/CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "path": "/api/v2/clients/8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "body": "", "status": 204, "response": "", @@ -9384,7 +9386,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/clients/KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "path": "/api/v2/clients/JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "body": "", "status": 204, "response": "", @@ -9394,7 +9396,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/clients/jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "path": "/api/v2/clients/tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "body": "", "status": 204, "response": "", @@ -9465,7 +9467,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "client_id": "I155fGKAI34tbclxLYjEwUYngPU53Blu", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9521,7 +9523,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/email", + "path": "/api/v2/guardian/factors/duo", "body": { "enabled": false }, @@ -9535,7 +9537,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/duo", + "path": "/api/v2/guardian/factors/email", "body": { "enabled": false }, @@ -9549,7 +9551,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/otp", + "path": "/api/v2/guardian/factors/webauthn-roaming", "body": { "enabled": false }, @@ -9563,7 +9565,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/push-notification", + "path": "/api/v2/guardian/factors/webauthn-platform", "body": { "enabled": false }, @@ -9577,7 +9579,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/sms", + "path": "/api/v2/guardian/factors/recovery-code", "body": { "enabled": false }, @@ -9591,7 +9593,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/webauthn-roaming", + "path": "/api/v2/guardian/factors/push-notification", "body": { "enabled": false }, @@ -9605,7 +9607,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/recovery-code", + "path": "/api/v2/guardian/factors/sms", "body": { "enabled": false }, @@ -9619,7 +9621,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/webauthn-platform", + "path": "/api/v2/guardian/factors/otp", "body": { "enabled": false }, @@ -9788,14 +9790,14 @@ "status": 200, "response": [ { - "id": "lst_0000000000018505", + "id": "lst_0000000000018536", "name": "Amazon EventBridge", "type": "eventbridge", "status": "active", "sink": { "awsAccountId": "123456789012", "awsRegion": "us-east-2", - "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-f468b793-c845-418d-b2fc-a2c38a604a73/auth0.logs" + "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-a295e235-1e5f-4e06-b2dd-94469edb676f/auth0.logs" }, "filters": [ { @@ -9838,7 +9840,7 @@ "isPriority": false }, { - "id": "lst_0000000000018504", + "id": "lst_0000000000018537", "name": "Suspended DD Log Stream", "type": "datadog", "status": "active", @@ -9855,7 +9857,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/log-streams/lst_0000000000018504", + "path": "/api/v2/log-streams/lst_0000000000018537", "body": "", "status": 204, "response": "", @@ -9865,7 +9867,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/log-streams/lst_0000000000018505", + "path": "/api/v2/log-streams/lst_0000000000018536", "body": "", "status": 204, "response": "", @@ -9951,7 +9953,7 @@ "subject": "deprecated" } ], - "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "client_id": "I155fGKAI34tbclxLYjEwUYngPU53Blu", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -10019,7 +10021,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -10093,7 +10095,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -10158,11 +10160,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/connections/con_isbl83K0EyW745Cg", + "path": "/api/v2/connections/con_Jd86qQK1FtuUb7xn", "body": "", "status": 202, "response": { - "deleted_at": "2024-11-07T10:03:32.014Z" + "deleted_at": "2024-11-15T11:11:58.019Z" }, "rawHeaders": [], "responseIsBinary": false @@ -10176,7 +10178,7 @@ "strategy": "auth0", "enabled_clients": [ "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" + "I155fGKAI34tbclxLYjEwUYngPU53Blu" ], "is_domain_connection": false, "options": { @@ -10194,7 +10196,7 @@ }, "status": 201, "response": { - "id": "con_7tTU8dpv9keeCE5Q", + "id": "con_pLHGc8ZQSY99vFHF", "options": { "mfa": { "active": true, @@ -10221,7 +10223,7 @@ "name": "Username-Password-Authentication", "is_domain_connection": false, "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "I155fGKAI34tbclxLYjEwUYngPU53Blu", "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" ], "realms": [ @@ -10310,7 +10312,7 @@ "subject": "deprecated" } ], - "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "client_id": "I155fGKAI34tbclxLYjEwUYngPU53Blu", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -10378,7 +10380,7 @@ "limit": 100, "connections": [ { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -10396,7 +10398,7 @@ "enabled_clients": [] }, { - "id": "con_7tTU8dpv9keeCE5Q", + "id": "con_pLHGc8ZQSY99vFHF", "options": { "mfa": { "active": true, @@ -10426,7 +10428,7 @@ "Username-Password-Authentication" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "I155fGKAI34tbclxLYjEwUYngPU53Blu", "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" ] } @@ -10447,7 +10449,7 @@ "limit": 100, "connections": [ { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -10465,7 +10467,7 @@ "enabled_clients": [] }, { - "id": "con_7tTU8dpv9keeCE5Q", + "id": "con_pLHGc8ZQSY99vFHF", "options": { "mfa": { "active": true, @@ -10495,7 +10497,7 @@ "Username-Password-Authentication" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "I155fGKAI34tbclxLYjEwUYngPU53Blu", "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" ] } @@ -10507,11 +10509,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/connections/con_A4te7zSEQoMDxaQb", + "path": "/api/v2/connections/con_SSAQuf1eAS4HALWp", "body": "", "status": 202, "response": { - "deleted_at": "2024-11-07T10:03:33.800Z" + "deleted_at": "2024-11-15T11:11:59.640Z" }, "rawHeaders": [], "responseIsBinary": false @@ -10595,7 +10597,7 @@ "subject": "deprecated" } ], - "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "client_id": "I155fGKAI34tbclxLYjEwUYngPU53Blu", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -10872,22 +10874,22 @@ "response": { "roles": [ { - "id": "rol_TRRzPxsQJyJTM3ll", + "id": "rol_UwW0xVAq4Df6F6tI", "name": "Admin", "description": "Can read and write things" }, { - "id": "rol_zKNIBuPjhxjGVlNh", + "id": "rol_VucPDNsmC49E1OCe", "name": "Reader", "description": "Can only read things" }, { - "id": "rol_YIcCCf9DuxYBLew3", + "id": "rol_Hgy6WgWIaceJ4YzE", "name": "read_only", "description": "Read Only" }, { - "id": "rol_Vf5h2h0CTRtIKU5Q", + "id": "rol_IMHAwOaDJpqdiH2x", "name": "read_osnly", "description": "Readz Only" } @@ -10902,7 +10904,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_TRRzPxsQJyJTM3ll/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_UwW0xVAq4Df6F6tI/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -10917,7 +10919,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_zKNIBuPjhxjGVlNh/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_VucPDNsmC49E1OCe/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -10932,7 +10934,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_YIcCCf9DuxYBLew3/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_Hgy6WgWIaceJ4YzE/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -10947,7 +10949,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_Vf5h2h0CTRtIKU5Q/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_IMHAwOaDJpqdiH2x/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -10962,7 +10964,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/roles/rol_TRRzPxsQJyJTM3ll", + "path": "/api/v2/roles/rol_UwW0xVAq4Df6F6tI", "body": "", "status": 200, "response": {}, @@ -10972,7 +10974,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/roles/rol_YIcCCf9DuxYBLew3", + "path": "/api/v2/roles/rol_Hgy6WgWIaceJ4YzE", "body": "", "status": 200, "response": {}, @@ -10982,7 +10984,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/roles/rol_zKNIBuPjhxjGVlNh", + "path": "/api/v2/roles/rol_VucPDNsmC49E1OCe", "body": "", "status": 200, "response": {}, @@ -10992,7 +10994,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/roles/rol_Vf5h2h0CTRtIKU5Q", + "path": "/api/v2/roles/rol_IMHAwOaDJpqdiH2x", "body": "", "status": 200, "response": {}, @@ -11008,7 +11010,7 @@ "response": { "actions": [ { - "id": "e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "name": "My Custom Action", "supported_triggers": [ { @@ -11016,34 +11018,34 @@ "version": "v2" } ], - "created_at": "2024-11-06T10:00:17.236448055Z", - "updated_at": "2024-11-07T10:03:12.847471658Z", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:11:39.131649018Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "built", "secrets": [], "current_version": { - "id": "60bb32e1-1573-4d52-b8b4-814f93669b3d", + "id": "5dfdf1de-3737-4d7d-952b-abf9822158ea", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", - "number": 3, - "build_time": "2024-11-07T10:03:13.668897406Z", - "created_at": "2024-11-07T10:03:13.559000939Z", - "updated_at": "2024-11-07T10:03:13.670882153Z" + "number": 4, + "build_time": "2024-11-15T11:11:39.903109093Z", + "created_at": "2024-11-15T11:11:39.841219169Z", + "updated_at": "2024-11-15T11:11:39.903743671Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "60bb32e1-1573-4d52-b8b4-814f93669b3d", + "id": "5dfdf1de-3737-4d7d-952b-abf9822158ea", "deployed": true, - "number": 3, - "built_at": "2024-11-07T10:03:13.668897406Z", + "number": 4, + "built_at": "2024-11-15T11:11:39.903109093Z", "secrets": [], "status": "built", - "created_at": "2024-11-07T10:03:13.559000939Z", - "updated_at": "2024-11-07T10:03:13.670882153Z", + "created_at": "2024-11-15T11:11:39.841219169Z", + "updated_at": "2024-11-15T11:11:39.903743671Z", "runtime": "node16", "supported_triggers": [ { @@ -11064,7 +11066,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/actions/actions/e8d56dc9-de98-4c0c-8b8a-456807f63fb0?force=true", + "path": "/api/v2/actions/actions/f921cc75-2b3b-4dd8-b1dd-d3c12f61df11?force=true", "body": "", "status": 204, "response": "", @@ -11084,6 +11086,38 @@ "rawHeaders": [], "responseIsBinary": false }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "organizations": [ + { + "id": "org_U1GPowP5fHVuX9iS", + "name": "org1", + "display_name": "Organization", + "branding": { + "colors": { + "page_background": "#fff5f5", + "primary": "#57ddff" + } + } + }, + { + "id": "org_TyQVczsJUGAC5u58", + "name": "org2", + "display_name": "Organization2" + } + ], + "start": 0, + "limit": 100, + "total": 2 + }, + "rawHeaders": [], + "responseIsBinary": false + }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -11163,7 +11197,7 @@ "subject": "deprecated" } ], - "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "client_id": "I155fGKAI34tbclxLYjEwUYngPU53Blu", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -11222,39 +11256,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations?page=0&per_page=100&include_totals=true", - "body": "", - "status": 200, - "response": { - "organizations": [ - { - "id": "org_98JjeO1GOLPTEzMw", - "name": "org1", - "display_name": "Organization", - "branding": { - "colors": { - "page_background": "#fff5f5", - "primary": "#57ddff" - } - } - }, - { - "id": "org_sqjTOFGOVZmKWPsI", - "name": "org2", - "display_name": "Organization2" - } - ], - "start": 0, - "limit": 100, - "total": 2 - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw/enabled_connections", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/enabled_connections", "body": "", "status": 200, "response": [], @@ -11264,7 +11266,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw/client-grants?page=0&per_page=100&include_totals=true", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/client-grants?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { @@ -11279,7 +11281,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI/enabled_connections", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/enabled_connections", "body": "", "status": 200, "response": [], @@ -11289,7 +11291,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI/client-grants?page=0&per_page=100&include_totals=true", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/client-grants?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { @@ -11313,7 +11315,7 @@ "limit": 100, "connections": [ { - "id": "con_7tTU8dpv9keeCE5Q", + "id": "con_pLHGc8ZQSY99vFHF", "options": { "mfa": { "active": true, @@ -11343,7 +11345,7 @@ "Username-Password-Authentication" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "I155fGKAI34tbclxLYjEwUYngPU53Blu", "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" ] } @@ -11643,7 +11645,7 @@ "subject": "deprecated" } ], - "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "client_id": "I155fGKAI34tbclxLYjEwUYngPU53Blu", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -11702,7 +11704,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS", "body": "", "status": 204, "response": "", @@ -11712,7 +11714,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "DELETE", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58", "body": "", "status": 204, "response": "", @@ -12826,7 +12828,7 @@ "subject": "deprecated" } ], - "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "client_id": "I155fGKAI34tbclxLYjEwUYngPU53Blu", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -12859,7 +12861,7 @@ "limit": 100, "connections": [ { - "id": "con_7tTU8dpv9keeCE5Q", + "id": "con_pLHGc8ZQSY99vFHF", "options": { "mfa": { "active": true, @@ -12889,7 +12891,7 @@ "Username-Password-Authentication" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "I155fGKAI34tbclxLYjEwUYngPU53Blu", "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" ] } @@ -12910,7 +12912,7 @@ "limit": 100, "connections": [ { - "id": "con_7tTU8dpv9keeCE5Q", + "id": "con_pLHGc8ZQSY99vFHF", "options": { "mfa": { "active": true, @@ -12940,7 +12942,7 @@ "Username-Password-Authentication" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "I155fGKAI34tbclxLYjEwUYngPU53Blu", "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" ] } @@ -13038,7 +13040,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/change_password", + "path": "/api/v2/email-templates/enrollment_email", "body": "", "status": 404, "response": { @@ -13053,7 +13055,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/enrollment_email", + "path": "/api/v2/email-templates/mfa_oob_code", "body": "", "status": 404, "response": { @@ -13068,7 +13070,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/user_invitation", + "path": "/api/v2/email-templates/reset_email", "body": "", "status": 404, "response": { @@ -13083,7 +13085,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/reset_email", + "path": "/api/v2/email-templates/password_reset", "body": "", "status": 404, "response": { @@ -13098,7 +13100,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/blocked_account", + "path": "/api/v2/email-templates/verify_email_by_code", "body": "", "status": 404, "response": { @@ -13113,7 +13115,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/password_reset", + "path": "/api/v2/email-templates/blocked_account", "body": "", "status": 404, "response": { @@ -13128,26 +13130,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/welcome_email", - "body": "", - "status": 200, - "response": { - "template": "welcome_email", - "body": "\n \n

Welcome!

\n \n\n", - "from": "", - "resultUrl": "https://example.com/welcome", - "subject": "Welcome", - "syntax": "liquid", - "urlLifetimeInSeconds": 3600, - "enabled": false - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/email-templates/mfa_oob_code", + "path": "/api/v2/email-templates/user_invitation", "body": "", "status": 404, "response": { @@ -13162,7 +13145,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/stolen_credentials", + "path": "/api/v2/email-templates/change_password", "body": "", "status": 404, "response": { @@ -13177,7 +13160,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/verify_email_by_code", + "path": "/api/v2/email-templates/stolen_credentials", "body": "", "status": 404, "response": { @@ -13207,6 +13190,25 @@ "rawHeaders": [], "responseIsBinary": false }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/email-templates/welcome_email", + "body": "", + "status": 200, + "response": { + "template": "welcome_email", + "body": "\n \n

Welcome!

\n \n\n", + "from": "", + "resultUrl": "https://example.com/welcome", + "subject": "Welcome", + "syntax": "liquid", + "urlLifetimeInSeconds": 3600, + "enabled": false + }, + "rawHeaders": [], + "responseIsBinary": false + }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -13665,7 +13667,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login/custom-text/en", + "path": "/api/v2/prompts/login-password/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13675,7 +13677,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-id/custom-text/en", + "path": "/api/v2/prompts/login/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13685,7 +13687,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-password/custom-text/en", + "path": "/api/v2/prompts/login-id/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13695,7 +13697,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup/custom-text/en", + "path": "/api/v2/prompts/login-email-verification/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13705,7 +13707,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-email-verification/custom-text/en", + "path": "/api/v2/prompts/signup/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13725,7 +13727,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup-password/custom-text/en", + "path": "/api/v2/prompts/reset-password/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13735,7 +13737,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/reset-password/custom-text/en", + "path": "/api/v2/prompts/signup-password/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13745,7 +13747,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/consent/custom-text/en", + "path": "/api/v2/prompts/mfa-push/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13765,7 +13767,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-push/custom-text/en", + "path": "/api/v2/prompts/consent/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13775,7 +13777,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-phone/custom-text/en", + "path": "/api/v2/prompts/mfa-voice/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13785,7 +13787,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-voice/custom-text/en", + "path": "/api/v2/prompts/mfa-phone/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13825,7 +13827,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-recovery-code/custom-text/en", + "path": "/api/v2/prompts/status/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13845,7 +13847,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/status/custom-text/en", + "path": "/api/v2/prompts/mfa-recovery-code/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13865,7 +13867,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/email-otp-challenge/custom-text/en", + "path": "/api/v2/prompts/device-flow/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13875,7 +13877,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/device-flow/custom-text/en", + "path": "/api/v2/prompts/email-otp-challenge/custom-text/en", "body": "", "status": 200, "response": {}, @@ -13915,7 +13917,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login/partials", + "path": "/api/v2/prompts/login-password/partials", "body": "", "status": 200, "response": {}, @@ -13925,7 +13927,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-id/partials", + "path": "/api/v2/prompts/login/partials", "body": "", "status": 200, "response": {}, @@ -13935,7 +13937,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-password/partials", + "path": "/api/v2/prompts/login-id/partials", "body": "", "status": 200, "response": {}, @@ -14118,25 +14120,25 @@ }, { "id": "post-change-password", - "version": "v2", - "status": "CURRENT", + "version": "v1", + "status": "DEPRECATED", "runtimes": [ - "node12", - "node16", - "node18-actions" + "node12" ], - "default_runtime": "node18-actions", + "default_runtime": "node12", "binding_policy": "trigger-bound", "compatible_triggers": [] }, { "id": "post-change-password", - "version": "v1", - "status": "DEPRECATED", + "version": "v2", + "status": "CURRENT", "runtimes": [ - "node12" + "node12", + "node16", + "node18-actions" ], - "default_runtime": "node12", + "default_runtime": "node18-actions", "binding_policy": "trigger-bound", "compatible_triggers": [] }, @@ -14457,7 +14459,7 @@ "subject": "deprecated" } ], - "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "client_id": "I155fGKAI34tbclxLYjEwUYngPU53Blu", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -14513,26 +14515,6 @@ "rawHeaders": [], "responseIsBinary": false }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/attack-protection/breached-password-detection", - "body": "", - "status": 200, - "response": { - "enabled": false, - "shields": [], - "admin_notification_frequency": [], - "method": "standard", - "stage": { - "pre-user-registration": { - "shields": [] - } - } - }, - "rawHeaders": [], - "responseIsBinary": false - }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -14579,6 +14561,26 @@ "rawHeaders": [], "responseIsBinary": false }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/attack-protection/breached-password-detection", + "body": "", + "status": 200, + "response": { + "enabled": false, + "shields": [], + "admin_notification_frequency": [], + "method": "standard", + "stage": { + "pre-user-registration": { + "shields": [] + } + } + }, + "rawHeaders": [], + "responseIsBinary": false + }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -14613,5 +14615,80 @@ }, "rawHeaders": [], "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "flows": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/forms?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "forms": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "flows": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "connections": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "connections": [] + }, + "rawHeaders": [], + "responseIsBinary": false } ] \ No newline at end of file diff --git a/test/e2e/recordings/should-deploy-without-deleting-resources-if-AUTH0_ALLOW_DELETE-is-false.json b/test/e2e/recordings/should-deploy-without-deleting-resources-if-AUTH0_ALLOW_DELETE-is-false.json index fc53bdf5..5ac97dfc 100644 --- a/test/e2e/recordings/should-deploy-without-deleting-resources-if-AUTH0_ALLOW_DELETE-is-false.json +++ b/test/e2e/recordings/should-deploy-without-deleting-resources-if-AUTH0_ALLOW_DELETE-is-false.json @@ -6,10 +6,19 @@ "body": "", "status": 200, "response": { - "total": 0, + "total": 1, "start": 0, "limit": 100, - "rules": [] + "rules": [ + { + "id": "rul_ANXcw440qOoeEht3", + "enabled": true, + "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", + "name": "my-rule", + "order": 2, + "stage": "login_success" + } + ] }, "rawHeaders": [], "responseIsBinary": false @@ -21,26 +30,34 @@ "body": "", "status": 200, "response": { - "total": 0, + "total": 1, "start": 0, "limit": 100, - "rules": [] + "rules": [ + { + "id": "rul_ANXcw440qOoeEht3", + "enabled": true, + "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", + "name": "my-rule", + "order": 2, + "stage": "login_success" + } + ] }, "rawHeaders": [], "responseIsBinary": false }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/rules", + "method": "PATCH", + "path": "/api/v2/rules/rul_ANXcw440qOoeEht3", "body": { "name": "my-rule", "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", - "stage": "login_success", "enabled": true, "order": 2 }, - "status": 201, + "status": 200, "response": { "id": "rul_ANXcw440qOoeEht3", "enabled": true, @@ -1059,7 +1076,7 @@ "body": "", "status": 200, "response": { - "total": 2, + "total": 9, "start": 0, "limit": 100, "clients": [ @@ -1146,333 +1163,415 @@ "client_credentials" ], "custom_login_page_on": true - } - ] - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/clients", - "body": { - "name": "API Explorer Application", - "allowed_clients": [], - "app_type": "non_interactive", - "callbacks": [], - "client_aliases": [], - "client_metadata": {}, - "cross_origin_auth": false, - "custom_login_page_on": true, - "grant_types": [ - "client_credentials" - ], - "is_first_party": true, - "is_token_endpoint_ip_header_trusted": false, - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "native_social_login": { - "apple": { - "enabled": false }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "token_endpoint_auth_method": "client_secret_post" - }, - "status": 201, - "response": { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "API Explorer Application", - "allowed_clients": [], - "callbacks": [], - "client_metadata": {}, - "cross_origin_auth": false, - "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "API Explorer Application", + "allowed_clients": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "encrypted": true, - "signing_keys": [ { - "cert": "[REDACTED]", - "key": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" - } - ], - "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", - "grant_types": [ - "client_credentials" - ], - "custom_login_page_on": true - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/clients", - "body": { - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "allowed_origins": [], - "app_type": "regular_web", - "callbacks": [], - "client_aliases": [], - "client_metadata": {}, - "cross_origin_auth": false, - "custom_login_page_on": true, - "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", - "client_credentials" - ], - "is_first_party": true, - "is_token_endpoint_ip_header_trusted": false, - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "native_social_login": { - "apple": { - "enabled": false + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, + "cross_origin_auth": false, + "is_first_party": true, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "token_endpoint_auth_method": "client_secret_post", - "web_origins": [] - }, - "status": 201, - "response": { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, - "cross_origin_auth": false, - "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "app_type": "regular_web", + "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", + "client_credentials" + ], + "web_origins": [], + "custom_login_page_on": true }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "encrypted": true, - "signing_keys": [ { - "cert": "[REDACTED]", - "key": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" - } - ], - "allowed_origins": [], - "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", - "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", - "client_credentials" - ], - "web_origins": [], - "custom_login_page_on": true - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/clients", - "body": { - "name": "Quickstarts API (Test Application)", - "app_type": "non_interactive", - "client_metadata": { - "foo": "bar" - }, - "cross_origin_auth": false, - "custom_login_page_on": true, - "grant_types": [ - "client_credentials" - ], - "is_first_party": true, - "is_token_endpoint_ip_header_trusted": false, - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "token_endpoint_auth_method": "client_secret_post" - }, - "status": 201, - "response": { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, - "cross_origin_auth": false, - "is_first_party": true, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "encrypted": true, - "signing_keys": [ + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Terraform Provider", + "cross_origin_auth": false, + "is_first_party": true, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true + }, { - "cert": "[REDACTED]", - "key": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" - } - ], - "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", - "grant_types": [ - "client_credentials" - ], - "custom_login_page_on": true - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "The Default App", + "allowed_clients": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": false, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "rotation_type": "non-rotating" + }, + "sso": false, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", + "client_credentials" + ], + "custom_login_page_on": true + }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Test SPA", + "allowed_clients": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "expiring", + "leeway": 0, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "none", + "app_type": "spa", + "grant_types": [ + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" + ], + "custom_login_page_on": true + }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "auth0-deploy-cli-extension", + "allowed_clients": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true + } + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/clients", + "method": "PATCH", + "path": "/api/v2/clients/ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "body": { - "name": "Terraform Provider", - "app_type": "non_interactive", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "allowed_origins": [], + "app_type": "regular_web", + "callbacks": [], + "client_aliases": [], + "client_metadata": {}, "cross_origin_auth": false, "custom_login_page_on": true, "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], "is_first_party": true, "is_token_endpoint_ip_header_trusted": false, "jwt_configuration": { "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false + "lifetime_in_seconds": 36000 + }, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } }, "oidc_conformant": true, "refresh_token": { @@ -1485,16 +1584,29 @@ "rotation_type": "non-rotating" }, "sso_disabled": false, - "token_endpoint_auth_method": "client_secret_post" + "token_endpoint_auth_method": "client_secret_post", + "web_origins": [] }, - "status": 201, + "status": 200, "response": { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -1507,16 +1619,15 @@ }, "sso_disabled": false, "cross_origin_authentication": false, - "encrypted": true, "signing_keys": [ { "cert": "[REDACTED]", - "key": "[REDACTED]", "pkcs7": "[REDACTED]", "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1524,11 +1635,16 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, "rawHeaders": [], @@ -1536,104 +1652,69 @@ }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/clients", + "method": "PATCH", + "path": "/api/v2/clients/XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "body": { - "name": "Test SPA", - "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "app_type": "spa", - "callbacks": [ - "http://localhost:3000" - ], - "client_aliases": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "app_type": "non_interactive", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "custom_login_page_on": true, "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" + "client_credentials" ], "is_first_party": true, "is_token_endpoint_ip_header_trusted": false, "jwt_configuration": { "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } + "lifetime_in_seconds": 36000 }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, - "token_endpoint_auth_method": "none", - "web_origins": [ - "http://localhost:3000" - ] + "token_endpoint_auth_method": "client_secret_post" }, - "status": 201, + "status": 200, "response": { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", - "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, - "encrypted": true, "signing_keys": [ { "cert": "[REDACTED]", - "key": "[REDACTED]", "pkcs7": "[REDACTED]", "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1641,16 +1722,10 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true }, @@ -1659,28 +1734,25 @@ }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/clients", + "method": "PATCH", + "path": "/api/v2/clients/43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "body": { - "name": "The Default App", + "name": "API Explorer Application", "allowed_clients": [], + "app_type": "non_interactive", "callbacks": [], "client_aliases": [], "client_metadata": {}, "cross_origin_auth": false, "custom_login_page_on": true, "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], "is_first_party": true, "is_token_endpoint_ip_header_trusted": false, "jwt_configuration": { "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false + "lifetime_in_seconds": 36000 }, "native_social_login": { "apple": { @@ -1690,26 +1762,25 @@ "enabled": false } }, - "oidc_conformant": false, + "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, "rotation_type": "non-rotating" }, - "sso": false, "sso_disabled": false, "token_endpoint_auth_method": "client_secret_post" }, - "status": 201, + "status": 200, "response": { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "The Default App", + "name": "API Explorer Application", "allowed_clients": [], "callbacks": [], "client_metadata": {}, @@ -1723,29 +1794,26 @@ "enabled": false } }, - "oidc_conformant": false, + "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, "rotation_type": "non-rotating" }, - "sso": false, "sso_disabled": false, "cross_origin_authentication": false, - "encrypted": true, "signing_keys": [ { "cert": "[REDACTED]", - "key": "[REDACTED]", "pkcs7": "[REDACTED]", "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1755,10 +1823,8 @@ }, "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], "custom_login_page_on": true @@ -1768,26 +1834,103 @@ }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/clients", + "method": "PATCH", + "path": "/api/v2/clients/PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "body": { - "name": "auth0-deploy-cli-extension", - "allowed_clients": [], + "name": "Terraform Provider", + "app_type": "non_interactive", + "cross_origin_auth": false, + "custom_login_page_on": true, + "grant_types": [ + "client_credentials" + ], + "is_first_party": true, + "is_token_endpoint_ip_header_trusted": false, + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000 + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "token_endpoint_auth_method": "client_secret_post" + }, + "status": 200, + "response": { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Terraform Provider", + "cross_origin_auth": false, + "is_first_party": true, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" + } + ], + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "token_endpoint_auth_method": "client_secret_post", "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/clients/8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "body": { + "name": "The Default App", + "allowed_clients": [], "callbacks": [], "client_aliases": [], "client_metadata": {}, "cross_origin_auth": false, "custom_login_page_on": true, "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], "is_first_party": true, "is_token_endpoint_ip_header_trusted": false, "jwt_configuration": { "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false + "lifetime_in_seconds": 36000 }, "native_social_login": { "apple": { @@ -1797,25 +1940,26 @@ "enabled": false } }, - "oidc_conformant": true, + "oidc_conformant": false, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, "rotation_type": "non-rotating" }, + "sso": false, "sso_disabled": false, "token_endpoint_auth_method": "client_secret_post" }, - "status": 201, + "status": 200, "response": { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "The Default App", "allowed_clients": [], "callbacks": [], "client_metadata": {}, @@ -1829,28 +1973,27 @@ "enabled": false } }, - "oidc_conformant": true, + "oidc_conformant": false, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, "rotation_type": "non-rotating" }, + "sso": false, "sso_disabled": false, "cross_origin_authentication": false, - "encrypted": true, "signing_keys": [ { "cert": "[REDACTED]", - "key": "[REDACTED]", "pkcs7": "[REDACTED]", "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1860,8 +2003,10 @@ }, "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], "custom_login_page_on": true @@ -1869,66 +2014,236 @@ "rawHeaders": [], "responseIsBinary": false }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/emails/provider?fields=name%2Cenabled%2Ccredentials%2Csettings%2Cdefault_from_address&include_fields=true", - "body": "", - "status": 200, - "response": { - "name": "mandrill", - "credentials": {}, - "default_from_address": "auth0-user@auth0.com", - "enabled": false - }, - "rawHeaders": [], - "responseIsBinary": false - }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/emails/provider", - "body": { - "name": "mandrill", - "credentials": { - "api_key": "##MANDRILL_API_KEY##" - }, - "default_from_address": "auth0-user@auth0.com", - "enabled": false - }, - "status": 200, - "response": { - "name": "mandrill", - "credentials": {}, - "default_from_address": "auth0-user@auth0.com", - "enabled": false - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PUT", - "path": "/api/v2/guardian/factors/otp", + "path": "/api/v2/clients/JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "body": { - "enabled": false - }, + "name": "Test SPA", + "allowed_clients": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "app_type": "spa", + "callbacks": [ + "http://localhost:3000" + ], + "client_aliases": [], + "client_metadata": {}, + "cross_origin_auth": false, + "custom_login_page_on": true, + "grant_types": [ + "authorization_code", + "implicit", + "refresh_token" + ], + "is_first_party": true, + "is_token_endpoint_ip_header_trusted": false, + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000 + }, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "expiring", + "leeway": 0, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" + }, + "sso_disabled": false, + "token_endpoint_auth_method": "none", + "web_origins": [ + "http://localhost:3000" + ] + }, "status": 200, "response": { - "enabled": false + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Test SPA", + "allowed_clients": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "expiring", + "leeway": 0, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" + } + ], + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "none", + "app_type": "spa", + "grant_types": [ + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" + ], + "custom_login_page_on": true }, "rawHeaders": [], "responseIsBinary": false }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PUT", - "path": "/api/v2/guardian/factors/duo", + "method": "PATCH", + "path": "/api/v2/clients/tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "body": { - "enabled": false + "name": "auth0-deploy-cli-extension", + "allowed_clients": [], + "app_type": "non_interactive", + "callbacks": [], + "client_aliases": [], + "client_metadata": {}, + "cross_origin_auth": false, + "custom_login_page_on": true, + "grant_types": [ + "client_credentials" + ], + "is_first_party": true, + "is_token_endpoint_ip_header_trusted": false, + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000 + }, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "token_endpoint_auth_method": "client_secret_post" + }, + "status": 200, + "response": { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "auth0-deploy-cli-extension", + "allowed_clients": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" + } + ], + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/emails/provider?fields=name%2Cenabled%2Ccredentials%2Csettings%2Cdefault_from_address&include_fields=true", + "body": "", "status": 200, "response": { + "name": "mandrill", + "credentials": {}, + "default_from_address": "auth0-user@auth0.com", "enabled": false }, "rawHeaders": [], @@ -1936,13 +2251,21 @@ }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PUT", - "path": "/api/v2/guardian/factors/email", + "method": "PATCH", + "path": "/api/v2/emails/provider", "body": { + "name": "mandrill", + "credentials": { + "api_key": "##MANDRILL_API_KEY##" + }, + "default_from_address": "auth0-user@auth0.com", "enabled": false }, "status": 200, "response": { + "name": "mandrill", + "credentials": {}, + "default_from_address": "auth0-user@auth0.com", "enabled": false }, "rawHeaders": [], @@ -1951,7 +2274,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/webauthn-platform", + "path": "/api/v2/guardian/factors/email", "body": { "enabled": false }, @@ -1965,7 +2288,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/sms", + "path": "/api/v2/guardian/factors/duo", "body": { "enabled": false }, @@ -1979,7 +2302,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/recovery-code", + "path": "/api/v2/guardian/factors/otp", "body": { "enabled": false }, @@ -1993,13 +2316,13 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/push-notification", + "path": "/api/v2/guardian/factors/webauthn-platform", "body": { - "enabled": true + "enabled": false }, "status": 200, "response": { - "enabled": true + "enabled": false }, "rawHeaders": [], "responseIsBinary": false @@ -2007,7 +2330,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/webauthn-roaming", + "path": "/api/v2/guardian/factors/recovery-code", "body": { "enabled": false }, @@ -2021,14 +2344,56 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/policies", - "body": [ - "all-applications" - ], + "path": "/api/v2/guardian/factors/webauthn-roaming", + "body": { + "enabled": false + }, "status": 200, - "response": [ - "all-applications" - ], + "response": { + "enabled": false + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PUT", + "path": "/api/v2/guardian/factors/push-notification", + "body": { + "enabled": true + }, + "status": 200, + "response": { + "enabled": true + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PUT", + "path": "/api/v2/guardian/factors/sms", + "body": { + "enabled": false + }, + "status": 200, + "response": { + "enabled": false + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PUT", + "path": "/api/v2/guardian/policies", + "body": [ + "all-applications" + ], + "status": 200, + "response": [ + "all-applications" + ], "rawHeaders": [], "responseIsBinary": false }, @@ -2076,31 +2441,6 @@ "rawHeaders": [], "responseIsBinary": false }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PATCH", - "path": "/api/v2/attack-protection/breached-password-detection", - "body": { - "enabled": false, - "shields": [], - "admin_notification_frequency": [], - "method": "standard" - }, - "status": 200, - "response": { - "enabled": false, - "shields": [], - "admin_notification_frequency": [], - "method": "standard", - "stage": { - "pre-user-registration": { - "shields": [] - } - } - }, - "rawHeaders": [], - "responseIsBinary": false - }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", @@ -2175,20 +2515,133 @@ "rawHeaders": [], "responseIsBinary": false }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/attack-protection/breached-password-detection", + "body": { + "enabled": false, + "shields": [], + "admin_notification_frequency": [], + "method": "standard" + }, + "status": 200, + "response": { + "enabled": false, + "shields": [], + "admin_notification_frequency": [], + "method": "standard", + "stage": { + "pre-user-registration": { + "shields": [] + } + } + }, + "rawHeaders": [], + "responseIsBinary": false + }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", "path": "/api/v2/log-streams", "body": "", "status": 200, - "response": [], + "response": [ + { + "id": "lst_0000000000018536", + "name": "Amazon EventBridge", + "type": "eventbridge", + "status": "active", + "sink": { + "awsAccountId": "123456789012", + "awsRegion": "us-east-2", + "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-a295e235-1e5f-4e06-b2dd-94469edb676f/auth0.logs" + }, + "filters": [ + { + "type": "category", + "name": "auth.login.success" + }, + { + "type": "category", + "name": "auth.login.notification" + }, + { + "type": "category", + "name": "auth.login.fail" + }, + { + "type": "category", + "name": "auth.signup.success" + }, + { + "type": "category", + "name": "auth.logout.success" + }, + { + "type": "category", + "name": "auth.logout.fail" + }, + { + "type": "category", + "name": "auth.silent_auth.fail" + }, + { + "type": "category", + "name": "auth.silent_auth.success" + }, + { + "type": "category", + "name": "auth.token_exchange.fail" + } + ], + "isPriority": false + }, + { + "id": "lst_0000000000018537", + "name": "Suspended DD Log Stream", + "type": "datadog", + "status": "active", + "sink": { + "datadogApiKey": "some-sensitive-api-key", + "datadogRegion": "us" + }, + "isPriority": false + } + ], "rawHeaders": [], "responseIsBinary": false }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/log-streams", + "method": "PATCH", + "path": "/api/v2/log-streams/lst_0000000000018537", + "body": { + "name": "Suspended DD Log Stream", + "sink": { + "datadogApiKey": "some-sensitive-api-key", + "datadogRegion": "us" + } + }, + "status": 200, + "response": { + "id": "lst_0000000000018537", + "name": "Suspended DD Log Stream", + "type": "datadog", + "status": "active", + "sink": { + "datadogApiKey": "some-sensitive-api-key", + "datadogRegion": "us" + }, + "isPriority": false + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/log-streams/lst_0000000000018536", "body": { "name": "Amazon EventBridge", "filters": [ @@ -2229,11 +2682,7 @@ "name": "auth.token_exchange.fail" } ], - "sink": { - "awsAccountId": "123456789012", - "awsRegion": "us-east-2" - }, - "type": "eventbridge" + "status": "active" }, "status": 200, "response": { @@ -2289,33 +2738,6 @@ "rawHeaders": [], "responseIsBinary": false }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/log-streams", - "body": { - "name": "Suspended DD Log Stream", - "sink": { - "datadogApiKey": "some-sensitive-api-key", - "datadogRegion": "us" - }, - "type": "datadog" - }, - "status": 200, - "response": { - "id": "lst_0000000000018537", - "name": "Suspended DD Log Stream", - "type": "datadog", - "status": "active", - "sink": { - "datadogApiKey": "some-sensitive-api-key", - "datadogRegion": "us" - }, - "isPriority": false - }, - "rawHeaders": [], - "responseIsBinary": false - }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -2827,24 +3249,43 @@ "body": "", "status": 200, "response": { - "total": 1, + "total": 2, "start": 0, "limit": 100, "connections": [ { - "id": "con_7tTU8dpv9keeCE5Q", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, "return_enroll_settings": true }, - "passwordPolicy": "good", + "import_mode": false, + "customScripts": { + "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "create": "function create(user, callback) {\n // This script should create a user entry in your existing database. It will\n // be executed when a user attempts to sign up, or when a user is created\n // through the Auth0 dashboard or API.\n // When this script has finished executing, the Login script will be\n // executed immediately afterwards, to verify that the user was created\n // successfully.\n //\n // The user object will always contain the following properties:\n // * email: the user's email\n // * password: the password entered by the user, in plain text\n // * tenant: the name of this Auth0 account\n // * client_id: the client ID of the application where the user signed up, or\n // API key if created through the API or Auth0 dashboard\n // * connection: the name of this database connection\n //\n // There are three ways this script can finish:\n // 1. A user was successfully created\n // callback(null);\n // 2. This user already exists in your database\n // callback(new ValidationError(\"user_exists\", \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Create script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "delete": "function remove(id, callback) {\n // This script remove a user from your existing database.\n // It is executed whenever a user is deleted from the API or Auth0 dashboard.\n //\n // There are two ways that this script can finish:\n // 1. The user was removed successfully:\n // callback(null);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Delete script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "get_user": "function getByEmail(email, callback) {\n // This script should retrieve a user profile from your existing database,\n // without authenticating the user.\n // It is used to check if a user exists before executing flows that do not\n // require authentication (signup and password reset).\n //\n // There are three ways this script can finish:\n // 1. A user was successfully found. The profile should be in the following\n // format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema.\n // callback(null, profile);\n // 2. A user was not found\n // callback(null);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Get User script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" + }, + "disable_signup": false, + "passwordPolicy": "low", "passkey_options": { "challenge_ui": "both", "local_enrollment_enabled": true, "progressive_enrollment_enabled": true }, + "password_history": { + "size": 5, + "enable": false + }, "strategy_version": 2, + "requires_username": true, + "password_dictionary": { + "enable": true, + "dictionary": [] + }, "authentication_methods": { "passkey": { "enabled": false @@ -2853,21 +3294,63 @@ "enabled": true } }, - "brute_force_protection": true + "brute_force_protection": true, + "password_no_personal_info": { + "enable": true + }, + "password_complexity_options": { + "min_length": 8 + }, + "enabledDatabaseCustomization": true }, "strategy": "auth0", - "name": "Username-Password-Authentication", + "name": "boo-baz-db-connection-test", "is_domain_connection": false, "realms": [ - "Username-Password-Authentication" + "boo-baz-db-connection-test" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] - } - ] - }, + }, + { + "id": "con_7tTU8dpv9keeCE5Q", + "options": { + "mfa": { + "active": true, + "return_enroll_settings": true + }, + "passwordPolicy": "good", + "passkey_options": { + "challenge_ui": "both", + "local_enrollment_enabled": true, + "progressive_enrollment_enabled": true + }, + "strategy_version": 2, + "authentication_methods": { + "passkey": { + "enabled": false + }, + "password": { + "enabled": true + } + }, + "brute_force_protection": true + }, + "strategy": "auth0", + "name": "Username-Password-Authentication", + "is_domain_connection": false, + "realms": [ + "Username-Password-Authentication" + ], + "enabled_clients": [ + "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" + ] + } + ] + }, "rawHeaders": [], "responseIsBinary": false }, @@ -2878,10 +3361,71 @@ "body": "", "status": 200, "response": { - "total": 1, + "total": 2, "start": 0, "limit": 100, "connections": [ + { + "id": "con_Jd86qQK1FtuUb7xn", + "options": { + "mfa": { + "active": true, + "return_enroll_settings": true + }, + "import_mode": false, + "customScripts": { + "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "create": "function create(user, callback) {\n // This script should create a user entry in your existing database. It will\n // be executed when a user attempts to sign up, or when a user is created\n // through the Auth0 dashboard or API.\n // When this script has finished executing, the Login script will be\n // executed immediately afterwards, to verify that the user was created\n // successfully.\n //\n // The user object will always contain the following properties:\n // * email: the user's email\n // * password: the password entered by the user, in plain text\n // * tenant: the name of this Auth0 account\n // * client_id: the client ID of the application where the user signed up, or\n // API key if created through the API or Auth0 dashboard\n // * connection: the name of this database connection\n //\n // There are three ways this script can finish:\n // 1. A user was successfully created\n // callback(null);\n // 2. This user already exists in your database\n // callback(new ValidationError(\"user_exists\", \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Create script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "delete": "function remove(id, callback) {\n // This script remove a user from your existing database.\n // It is executed whenever a user is deleted from the API or Auth0 dashboard.\n //\n // There are two ways that this script can finish:\n // 1. The user was removed successfully:\n // callback(null);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Delete script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "get_user": "function getByEmail(email, callback) {\n // This script should retrieve a user profile from your existing database,\n // without authenticating the user.\n // It is used to check if a user exists before executing flows that do not\n // require authentication (signup and password reset).\n //\n // There are three ways this script can finish:\n // 1. A user was successfully found. The profile should be in the following\n // format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema.\n // callback(null, profile);\n // 2. A user was not found\n // callback(null);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Get User script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" + }, + "disable_signup": false, + "passwordPolicy": "low", + "passkey_options": { + "challenge_ui": "both", + "local_enrollment_enabled": true, + "progressive_enrollment_enabled": true + }, + "password_history": { + "size": 5, + "enable": false + }, + "strategy_version": 2, + "requires_username": true, + "password_dictionary": { + "enable": true, + "dictionary": [] + }, + "authentication_methods": { + "passkey": { + "enabled": false + }, + "password": { + "enabled": true + } + }, + "brute_force_protection": true, + "password_no_personal_info": { + "enable": true + }, + "password_complexity_options": { + "min_length": 8 + }, + "enabledDatabaseCustomization": true + }, + "strategy": "auth0", + "name": "boo-baz-db-connection-test", + "is_domain_connection": false, + "realms": [ + "boo-baz-db-connection-test" + ], + "enabled_clients": [ + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" + ] + }, { "id": "con_7tTU8dpv9keeCE5Q", "options": { @@ -2913,8 +3457,8 @@ "Username-Password-Authentication" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" + "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -2924,11 +3468,79 @@ }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/connections", - "body": { - "name": "boo-baz-db-connection-test", + "method": "GET", + "path": "/api/v2/connections/con_Jd86qQK1FtuUb7xn", + "body": "", + "status": 200, + "response": { + "id": "con_Jd86qQK1FtuUb7xn", + "options": { + "mfa": { + "active": true, + "return_enroll_settings": true + }, + "import_mode": false, + "customScripts": { + "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "create": "function create(user, callback) {\n // This script should create a user entry in your existing database. It will\n // be executed when a user attempts to sign up, or when a user is created\n // through the Auth0 dashboard or API.\n // When this script has finished executing, the Login script will be\n // executed immediately afterwards, to verify that the user was created\n // successfully.\n //\n // The user object will always contain the following properties:\n // * email: the user's email\n // * password: the password entered by the user, in plain text\n // * tenant: the name of this Auth0 account\n // * client_id: the client ID of the application where the user signed up, or\n // API key if created through the API or Auth0 dashboard\n // * connection: the name of this database connection\n //\n // There are three ways this script can finish:\n // 1. A user was successfully created\n // callback(null);\n // 2. This user already exists in your database\n // callback(new ValidationError(\"user_exists\", \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Create script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "delete": "function remove(id, callback) {\n // This script remove a user from your existing database.\n // It is executed whenever a user is deleted from the API or Auth0 dashboard.\n //\n // There are two ways that this script can finish:\n // 1. The user was removed successfully:\n // callback(null);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Delete script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "get_user": "function getByEmail(email, callback) {\n // This script should retrieve a user profile from your existing database,\n // without authenticating the user.\n // It is used to check if a user exists before executing flows that do not\n // require authentication (signup and password reset).\n //\n // There are three ways this script can finish:\n // 1. A user was successfully found. The profile should be in the following\n // format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema.\n // callback(null, profile);\n // 2. A user was not found\n // callback(null);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Get User script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" + }, + "disable_signup": false, + "passwordPolicy": "low", + "passkey_options": { + "challenge_ui": "both", + "local_enrollment_enabled": true, + "progressive_enrollment_enabled": true + }, + "password_history": { + "size": 5, + "enable": false + }, + "strategy_version": 2, + "requires_username": true, + "password_dictionary": { + "enable": true, + "dictionary": [] + }, + "authentication_methods": { + "passkey": { + "enabled": false + }, + "password": { + "enabled": true + } + }, + "brute_force_protection": true, + "password_no_personal_info": { + "enable": true + }, + "password_complexity_options": { + "min_length": 8 + }, + "enabledDatabaseCustomization": true + }, "strategy": "auth0", + "name": "boo-baz-db-connection-test", + "is_domain_connection": false, + "enabled_clients": [ + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" + ], + "realms": [ + "boo-baz-db-connection-test" + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/connections/con_Jd86qQK1FtuUb7xn", + "body": { "enabled_clients": [ "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" @@ -2950,6 +3562,11 @@ }, "disable_signup": false, "passwordPolicy": "low", + "passkey_options": { + "challenge_ui": "both", + "local_enrollment_enabled": true, + "progressive_enrollment_enabled": true + }, "password_history": { "size": 5, "enable": false @@ -2960,6 +3577,14 @@ "enable": true, "dictionary": [] }, + "authentication_methods": { + "passkey": { + "enabled": false + }, + "password": { + "enabled": true + } + }, "brute_force_protection": true, "password_no_personal_info": { "enable": true @@ -2973,7 +3598,7 @@ "boo-baz-db-connection-test" ] }, - "status": 201, + "status": 200, "response": { "id": "con_Jd86qQK1FtuUb7xn", "options": { @@ -2981,17 +3606,22 @@ "active": true, "return_enroll_settings": true }, - "passwordPolicy": "low", "import_mode": false, "customScripts": { - "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", "create": "function create(user, callback) {\n // This script should create a user entry in your existing database. It will\n // be executed when a user attempts to sign up, or when a user is created\n // through the Auth0 dashboard or API.\n // When this script has finished executing, the Login script will be\n // executed immediately afterwards, to verify that the user was created\n // successfully.\n //\n // The user object will always contain the following properties:\n // * email: the user's email\n // * password: the password entered by the user, in plain text\n // * tenant: the name of this Auth0 account\n // * client_id: the client ID of the application where the user signed up, or\n // API key if created through the API or Auth0 dashboard\n // * connection: the name of this database connection\n //\n // There are three ways this script can finish:\n // 1. A user was successfully created\n // callback(null);\n // 2. This user already exists in your database\n // callback(new ValidationError(\"user_exists\", \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Create script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", "delete": "function remove(id, callback) {\n // This script remove a user from your existing database.\n // It is executed whenever a user is deleted from the API or Auth0 dashboard.\n //\n // There are two ways that this script can finish:\n // 1. The user was removed successfully:\n // callback(null);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Delete script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", "get_user": "function getByEmail(email, callback) {\n // This script should retrieve a user profile from your existing database,\n // without authenticating the user.\n // It is used to check if a user exists before executing flows that do not\n // require authentication (signup and password reset).\n //\n // There are three ways this script can finish:\n // 1. A user was successfully found. The profile should be in the following\n // format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema.\n // callback(null, profile);\n // 2. A user was not found\n // callback(null);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Get User script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" + "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" }, "disable_signup": false, + "passwordPolicy": "low", + "passkey_options": { + "challenge_ui": "both", + "local_enrollment_enabled": true, + "progressive_enrollment_enabled": true + }, "password_history": { "size": 5, "enable": false @@ -3002,6 +3632,14 @@ "enable": true, "dictionary": [] }, + "authentication_methods": { + "passkey": { + "enabled": false + }, + "password": { + "enabled": true + } + }, "brute_force_protection": true, "password_no_personal_info": { "enable": true @@ -3009,27 +3647,14 @@ "password_complexity_options": { "min_length": 8 }, - "enabledDatabaseCustomization": true, - "authentication_methods": { - "password": { - "enabled": true - }, - "passkey": { - "enabled": false - } - }, - "passkey_options": { - "challenge_ui": "both", - "progressive_enrollment_enabled": true, - "local_enrollment_enabled": true - } + "enabledDatabaseCustomization": true }, "strategy": "auth0", "name": "boo-baz-db-connection-test", "is_domain_connection": false, "enabled_clients": [ - "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", - "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ], "realms": [ "boo-baz-db-connection-test" @@ -3549,7 +4174,7 @@ "body": "", "status": 200, "response": { - "total": 2, + "total": 3, "start": 0, "limit": 100, "connections": [ @@ -3614,6 +4239,27 @@ "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, + { + "id": "con_SSAQuf1eAS4HALWp", + "options": { + "email": true, + "scope": [ + "email", + "profile" + ], + "profile": true + }, + "strategy": "google-oauth2", + "name": "google-oauth2", + "is_domain_connection": false, + "realms": [ + "google-oauth2" + ], + "enabled_clients": [ + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" + ] + }, { "id": "con_7tTU8dpv9keeCE5Q", "options": { @@ -3645,8 +4291,8 @@ "Username-Password-Authentication" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" + "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -3661,7 +4307,7 @@ "body": "", "status": 200, "response": { - "total": 2, + "total": 3, "start": 0, "limit": 100, "connections": [ @@ -3727,12 +4373,33 @@ ] }, { - "id": "con_7tTU8dpv9keeCE5Q", + "id": "con_SSAQuf1eAS4HALWp", "options": { - "mfa": { - "active": true, - "return_enroll_settings": true - }, + "email": true, + "scope": [ + "email", + "profile" + ], + "profile": true + }, + "strategy": "google-oauth2", + "name": "google-oauth2", + "is_domain_connection": false, + "realms": [ + "google-oauth2" + ], + "enabled_clients": [ + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" + ] + }, + { + "id": "con_7tTU8dpv9keeCE5Q", + "options": { + "mfa": { + "active": true, + "return_enroll_settings": true + }, "passwordPolicy": "good", "passkey_options": { "challenge_ui": "both", @@ -3757,8 +4424,8 @@ "Username-Password-Authentication" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" + "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -3768,11 +4435,9 @@ }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/connections", + "method": "PATCH", + "path": "/api/v2/connections/con_SSAQuf1eAS4HALWp", "body": { - "name": "google-oauth2", - "strategy": "google-oauth2", "enabled_clients": [ "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" @@ -3787,7 +4452,7 @@ "profile": true } }, - "status": 201, + "status": 200, "response": { "id": "con_SSAQuf1eAS4HALWp", "options": { @@ -3815,27 +4480,25 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/email-templates/welcome_email", + "path": "/api/v2/email-templates/verify_email", "body": { - "template": "welcome_email", - "body": "\n \n

Welcome!

\n \n\n", - "enabled": false, + "template": "verify_email", + "body": "\n \n \n \n \n
\n \n \n \n
\n \n \n

\n\n

Welcome to {{ application.name}}!

\n\n

\n Thank you for signing up. Please verify your email address by clicking the following\n link:\n

\n\n

Confirm my account

\n\n

\n If you are having any issues with your account, please don’t hesitate to contact us\n by replying to this mail.\n

\n\n
\n Haha!!!\n
\n\n {{ application.name }}\n\n

\n
\n \n If you did not make this request, please contact us by replying to this mail.\n

\n
\n \n \n \n
\n \n\n", + "enabled": true, "from": "", - "resultUrl": "https://example.com/welcome", - "subject": "Welcome", + "subject": "", "syntax": "liquid", - "urlLifetimeInSeconds": 3600 + "urlLifetimeInSeconds": 432000 }, "status": 200, "response": { - "template": "welcome_email", - "body": "\n \n

Welcome!

\n \n\n", + "template": "verify_email", + "body": "\n \n \n \n \n
\n \n \n \n
\n \n \n

\n\n

Welcome to {{ application.name}}!

\n\n

\n Thank you for signing up. Please verify your email address by clicking the following\n link:\n

\n\n

Confirm my account

\n\n

\n If you are having any issues with your account, please don’t hesitate to contact us\n by replying to this mail.\n

\n\n
\n Haha!!!\n
\n\n {{ application.name }}\n\n

\n
\n \n If you did not make this request, please contact us by replying to this mail.\n

\n
\n \n \n \n
\n \n\n", "from": "", - "resultUrl": "https://example.com/welcome", - "subject": "Welcome", + "subject": "", "syntax": "liquid", - "urlLifetimeInSeconds": 3600, - "enabled": false + "urlLifetimeInSeconds": 432000, + "enabled": true }, "rawHeaders": [], "responseIsBinary": false @@ -3843,25 +4506,27 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/email-templates/verify_email", + "path": "/api/v2/email-templates/welcome_email", "body": { - "template": "verify_email", - "body": "\n \n \n \n \n
\n \n \n \n
\n \n \n

\n\n

Welcome to {{ application.name}}!

\n\n

\n Thank you for signing up. Please verify your email address by clicking the following\n link:\n

\n\n

Confirm my account

\n\n

\n If you are having any issues with your account, please don’t hesitate to contact us\n by replying to this mail.\n

\n\n
\n Haha!!!\n
\n\n {{ application.name }}\n\n

\n
\n \n If you did not make this request, please contact us by replying to this mail.\n

\n
\n \n \n \n
\n \n\n", - "enabled": true, + "template": "welcome_email", + "body": "\n \n

Welcome!

\n \n\n", + "enabled": false, "from": "", - "subject": "", + "resultUrl": "https://example.com/welcome", + "subject": "Welcome", "syntax": "liquid", - "urlLifetimeInSeconds": 432000 + "urlLifetimeInSeconds": 3600 }, "status": 200, "response": { - "template": "verify_email", - "body": "\n \n \n \n \n
\n \n \n \n
\n \n \n

\n\n

Welcome to {{ application.name}}!

\n\n

\n Thank you for signing up. Please verify your email address by clicking the following\n link:\n

\n\n

Confirm my account

\n\n

\n If you are having any issues with your account, please don’t hesitate to contact us\n by replying to this mail.\n

\n\n
\n Haha!!!\n
\n\n {{ application.name }}\n\n

\n
\n \n If you did not make this request, please contact us by replying to this mail.\n

\n
\n \n \n \n
\n \n\n", + "template": "welcome_email", + "body": "\n \n

Welcome!

\n \n\n", "from": "", - "subject": "", + "resultUrl": "https://example.com/welcome", + "subject": "Welcome", "syntax": "liquid", - "urlLifetimeInSeconds": 432000, - "enabled": true + "urlLifetimeInSeconds": 3600, + "enabled": false }, "rawHeaders": [], "responseIsBinary": false @@ -4377,13 +5042,13 @@ "body": "", "status": 200, "response": { - "total": 1, + "total": 3, "start": 0, "limit": 100, "client_grants": [ { - "id": "cgr_t3j1isctGZmOVylt", - "client_id": "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -4499,11 +5164,6 @@ "read:entitlements", "read:attack_protection", "update:attack_protection", - "read:organizations_summary", - "create:authentication_methods", - "read:authentication_methods", - "update:authentication_methods", - "delete:authentication_methods", "read:organizations", "update:organizations", "create:organizations", @@ -4520,1353 +5180,1195 @@ "delete:organization_member_roles", "create:organization_invitations", "read:organization_invitations", - "delete:organization_invitations", - "read:scim_config", - "create:scim_config", - "update:scim_config", - "delete:scim_config", - "create:scim_token", - "read:scim_token", - "delete:scim_token", - "delete:phone_providers", - "create:phone_providers", - "read:phone_providers", - "update:phone_providers", - "delete:phone_templates", - "create:phone_templates", - "read:phone_templates", - "update:phone_templates", - "create:encryption_keys", - "read:encryption_keys", - "update:encryption_keys", - "delete:encryption_keys", - "read:sessions", - "delete:sessions", - "read:refresh_tokens", - "delete:refresh_tokens", - "create:self_service_profiles", - "read:self_service_profiles", - "update:self_service_profiles", - "delete:self_service_profiles", - "create:sso_access_tickets", - "read:forms", - "update:forms", - "delete:forms", - "create:forms", - "read:flows", - "update:flows", - "delete:flows", - "create:flows", - "read:flows_vault", - "read:flows_vault_connections", - "update:flows_vault_connections", - "delete:flows_vault_connections", - "create:flows_vault_connections", - "read:flows_executions", - "delete:flows_executions", - "read:connections_options", - "update:connections_options", - "read:self_service_profile_custom_texts", - "update:self_service_profile_custom_texts", - "read:client_credentials", - "create:client_credentials", - "update:client_credentials", - "delete:client_credentials", - "read:organization_client_grants", - "create:organization_client_grants", - "delete:organization_client_grants" + "delete:organization_invitations" ] - } - ] - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/client-grants", - "body": { - "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations" - ] - }, - "status": 201, - "response": { - "id": "cgr_KE5stboZltPop0tc", - "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations" - ] - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/client-grants", - "body": { - "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations" - ] - }, - "status": 201, - "response": { - "id": "cgr_XRy0Lk9J8dl7iIt0", - "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations" - ] - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/roles?per_page=100&page=0&include_totals=true", - "body": "", - "status": 200, - "response": { - "roles": [], - "start": 0, - "limit": 100, - "total": 0 - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/roles", - "body": { - "name": "Reader", - "description": "Can only read things" - }, - "status": 200, - "response": { - "id": "rol_VucPDNsmC49E1OCe", - "name": "Reader", - "description": "Can only read things" - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/roles", - "body": { - "name": "Admin", - "description": "Can read and write things" - }, - "status": 200, - "response": { - "id": "rol_UwW0xVAq4Df6F6tI", - "name": "Admin", - "description": "Can read and write things" - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/roles", - "body": { - "name": "read_only", - "description": "Read Only" - }, - "status": 200, - "response": { - "id": "rol_Hgy6WgWIaceJ4YzE", - "name": "read_only", - "description": "Read Only" - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/roles", - "body": { - "name": "read_osnly", - "description": "Readz Only" - }, - "status": 200, - "response": { - "id": "rol_IMHAwOaDJpqdiH2x", - "name": "read_osnly", - "description": "Readz Only" - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/actions/actions?page=0&per_page=100", - "body": "", - "status": 200, - "response": { - "actions": [], - "per_page": 100 - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/actions/actions", - "body": { - "name": "My Custom Action", - "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", - "dependencies": [], - "runtime": "node16", - "secrets": [], - "supported_triggers": [ - { - "id": "post-login", - "version": "v2" - } - ] - }, - "status": 201, - "response": { - "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", - "name": "My Custom Action", - "supported_triggers": [ - { - "id": "post-login", - "version": "v2" - } - ], - "created_at": "2024-11-07T10:04:42.823412691Z", - "updated_at": "2024-11-07T10:04:42.845236889Z", - "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", - "dependencies": [], - "runtime": "node16", - "status": "pending", - "secrets": [], - "all_changes_deployed": false - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/actions/actions?page=0&per_page=100", - "body": "", - "status": 200, - "response": { - "actions": [ - { - "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", - "name": "My Custom Action", - "supported_triggers": [ - { - "id": "post-login", - "version": "v2" - } - ], - "created_at": "2024-11-07T10:04:42.823412691Z", - "updated_at": "2024-11-07T10:04:42.845236889Z", - "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", - "dependencies": [], - "runtime": "node16", - "status": "built", - "secrets": [], - "all_changes_deployed": false - } - ], - "total": 1, - "per_page": 100 - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/actions/actions/f921cc75-2b3b-4dd8-b1dd-d3c12f61df11/deploy", - "body": "", - "status": 200, - "response": { - "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", - "dependencies": [], - "id": "13d6692b-486f-4307-8957-64e59dfaae70", - "deployed": false, - "number": 1, - "secrets": [], - "status": "built", - "created_at": "2024-11-07T10:04:43.485782961Z", - "updated_at": "2024-11-07T10:04:43.485782961Z", - "runtime": "node16", - "supported_triggers": [ - { - "id": "post-login", - "version": "v2" - } - ], - "action": { - "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", - "name": "My Custom Action", - "supported_triggers": [ - { - "id": "post-login", - "version": "v2" - } - ], - "created_at": "2024-11-07T10:04:42.823412691Z", - "updated_at": "2024-11-07T10:04:42.823412691Z", - "all_changes_deployed": false - } - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/clients?page=0&per_page=100&include_totals=true", - "body": "", - "status": 200, - "response": { - "total": 10, - "start": 0, - "limit": 100, - "clients": [ - { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "Deploy CLI", - "is_first_party": true, - "oidc_conformant": true, - "sso_disabled": false, - "cross_origin_auth": false, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "cross_origin_authentication": true, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", - "grant_types": [ - "client_credentials" - ], - "custom_login_page_on": true - }, - { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "Default App", - "callbacks": [], - "cross_origin_auth": false, - "is_first_party": true, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", - "client_credentials" - ], - "custom_login_page_on": true - }, - { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "API Explorer Application", - "allowed_clients": [], - "callbacks": [], - "client_metadata": {}, - "cross_origin_auth": false, - "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", - "grant_types": [ - "client_credentials" - ], - "custom_login_page_on": true - }, - { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, - "cross_origin_auth": false, - "is_first_party": true, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", - "grant_types": [ - "client_credentials" - ], - "custom_login_page_on": true - }, - { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, - "cross_origin_auth": false, - "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "allowed_origins": [], - "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", - "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", - "client_credentials" - ], - "web_origins": [], - "custom_login_page_on": true - }, - { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", - "cross_origin_auth": false, - "is_first_party": true, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", - "grant_types": [ - "client_credentials" - ], - "custom_login_page_on": true }, { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "The Default App", - "allowed_clients": [], - "callbacks": [], - "client_metadata": {}, - "cross_origin_auth": false, - "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": false, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "rotation_type": "non-rotating" - }, - "sso": false, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", - "client_credentials" - ], - "custom_login_page_on": true + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] + }, + { + "id": "cgr_t3j1isctGZmOVylt", + "client_id": "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations_summary", + "create:authentication_methods", + "read:authentication_methods", + "update:authentication_methods", + "delete:authentication_methods", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations", + "read:scim_config", + "create:scim_config", + "update:scim_config", + "delete:scim_config", + "create:scim_token", + "read:scim_token", + "delete:scim_token", + "delete:phone_providers", + "create:phone_providers", + "read:phone_providers", + "update:phone_providers", + "delete:phone_templates", + "create:phone_templates", + "read:phone_templates", + "update:phone_templates", + "create:encryption_keys", + "read:encryption_keys", + "update:encryption_keys", + "delete:encryption_keys", + "read:sessions", + "delete:sessions", + "read:refresh_tokens", + "delete:refresh_tokens", + "create:self_service_profiles", + "read:self_service_profiles", + "update:self_service_profiles", + "delete:self_service_profiles", + "create:sso_access_tickets", + "read:forms", + "update:forms", + "delete:forms", + "create:forms", + "read:flows", + "update:flows", + "delete:flows", + "create:flows", + "read:flows_vault", + "read:flows_vault_connections", + "update:flows_vault_connections", + "delete:flows_vault_connections", + "create:flows_vault_connections", + "read:flows_executions", + "delete:flows_executions", + "read:connections_options", + "update:connections_options", + "read:self_service_profile_custom_texts", + "update:self_service_profile_custom_texts", + "read:client_credentials", + "create:client_credentials", + "update:client_credentials", + "delete:client_credentials", + "read:organization_client_grants", + "create:organization_client_grants", + "delete:organization_client_grants" + ] + } + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/client-grants/cgr_XRy0Lk9J8dl7iIt0", + "body": { + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] + }, + "status": 200, + "response": { + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/client-grants/cgr_KE5stboZltPop0tc", + "body": { + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] + }, + "status": 200, + "response": { + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/roles?per_page=100&page=0&include_totals=true", + "body": "", + "status": 200, + "response": { + "roles": [ + { + "id": "rol_UwW0xVAq4Df6F6tI", + "name": "Admin", + "description": "Can read and write things" }, { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", - "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], - "client_metadata": {}, - "cross_origin_auth": false, - "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "expiring", - "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", - "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" - ], - "custom_login_page_on": true + "id": "rol_VucPDNsmC49E1OCe", + "name": "Reader", + "description": "Can only read things" }, { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", - "allowed_clients": [], - "callbacks": [], - "client_metadata": {}, - "cross_origin_auth": false, - "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", - "grant_types": [ - "client_credentials" - ], - "custom_login_page_on": true + "id": "rol_Hgy6WgWIaceJ4YzE", + "name": "read_only", + "description": "Read Only" }, { - "tenant": "auth0-deploy-cli-e2e", - "global": true, - "callbacks": [], - "is_first_party": true, - "name": "All Applications", - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "rotation_type": "non-rotating" - }, - "owners": [ - "mr|samlp|okta|will.vedder@auth0.com", - "mr|google-oauth2|102002633619863830825", - "mr|samlp|okta|frederik.prijck@auth0.com", - "mr|google-oauth2|109614534713742077035", - "mr|google-oauth2|116771660953104383819" - ], - "custom_login_page": "TEST123\n", - "cross_origin_authentication": true, - "signing_keys": [ + "id": "rol_IMHAwOaDJpqdiH2x", + "name": "read_osnly", + "description": "Readz Only" + } + ], + "start": 0, + "limit": 100, + "total": 4 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/roles/rol_UwW0xVAq4Df6F6tI/permissions?per_page=100&page=0&include_totals=true", + "body": "", + "status": 200, + "response": { + "permissions": [], + "start": 0, + "limit": 100, + "total": 0 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/roles/rol_VucPDNsmC49E1OCe/permissions?per_page=100&page=0&include_totals=true", + "body": "", + "status": 200, + "response": { + "permissions": [], + "start": 0, + "limit": 100, + "total": 0 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/roles/rol_Hgy6WgWIaceJ4YzE/permissions?per_page=100&page=0&include_totals=true", + "body": "", + "status": 200, + "response": { + "permissions": [], + "start": 0, + "limit": 100, + "total": 0 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/roles/rol_IMHAwOaDJpqdiH2x/permissions?per_page=100&page=0&include_totals=true", + "body": "", + "status": 200, + "response": { + "permissions": [], + "start": 0, + "limit": 100, + "total": 0 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/roles/rol_VucPDNsmC49E1OCe", + "body": { + "name": "Reader", + "description": "Can only read things" + }, + "status": 200, + "response": { + "id": "rol_VucPDNsmC49E1OCe", + "name": "Reader", + "description": "Can only read things" + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/roles/rol_Hgy6WgWIaceJ4YzE", + "body": { + "name": "read_only", + "description": "Read Only" + }, + "status": 200, + "response": { + "id": "rol_Hgy6WgWIaceJ4YzE", + "name": "read_only", + "description": "Read Only" + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/roles/rol_UwW0xVAq4Df6F6tI", + "body": { + "name": "Admin", + "description": "Can read and write things" + }, + "status": 200, + "response": { + "id": "rol_UwW0xVAq4Df6F6tI", + "name": "Admin", + "description": "Can read and write things" + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/roles/rol_IMHAwOaDJpqdiH2x", + "body": { + "name": "read_osnly", + "description": "Readz Only" + }, + "status": 200, + "response": { + "id": "rol_IMHAwOaDJpqdiH2x", + "name": "read_osnly", + "description": "Readz Only" + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/actions/actions?page=0&per_page=100", + "body": "", + "status": 200, + "response": { + "actions": [ + { + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", + "name": "My Custom Action", + "supported_triggers": [ { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" + "id": "post-login", + "version": "v2" } ], - "client_id": "Isi93ibGHIGwmdYjsLwTOn7Gu7nwxU3V", - "client_secret": "[REDACTED]", - "custom_login_page_on": true + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:09:31.421139824Z", + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "dependencies": [], + "runtime": "node16", + "status": "built", + "secrets": [], + "current_version": { + "id": "2e4b6307-3db8-4eb8-93ce-7b06f405ed64", + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "runtime": "node16", + "status": "BUILT", + "number": 2, + "build_time": "2024-11-15T11:09:32.320146930Z", + "created_at": "2024-11-15T11:09:32.245664587Z", + "updated_at": "2024-11-15T11:09:32.321127475Z" + }, + "deployed_version": { + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "dependencies": [], + "id": "2e4b6307-3db8-4eb8-93ce-7b06f405ed64", + "deployed": true, + "number": 2, + "built_at": "2024-11-15T11:09:32.320146930Z", + "secrets": [], + "status": "built", + "created_at": "2024-11-15T11:09:32.245664587Z", + "updated_at": "2024-11-15T11:09:32.321127475Z", + "runtime": "node16", + "supported_triggers": [ + { + "id": "post-login", + "version": "v2" + } + ] + }, + "all_changes_deployed": true } - ] + ], + "total": 1, + "per_page": 100 }, "rawHeaders": [], "responseIsBinary": false }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/organizations?page=0&per_page=100&include_totals=true", - "body": "", + "method": "PATCH", + "path": "/api/v2/actions/actions/f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", + "body": { + "name": "My Custom Action", + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "dependencies": [], + "runtime": "node16", + "secrets": [], + "supported_triggers": [ + { + "id": "post-login", + "version": "v2" + } + ] + }, "status": 200, "response": { - "organizations": [], - "start": 0, - "limit": 100, - "total": 0 + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", + "name": "My Custom Action", + "supported_triggers": [ + { + "id": "post-login", + "version": "v2" + } + ], + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:10:23.631836207Z", + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "dependencies": [], + "runtime": "node16", + "status": "pending", + "secrets": [], + "current_version": { + "id": "2e4b6307-3db8-4eb8-93ce-7b06f405ed64", + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "runtime": "node16", + "status": "BUILT", + "number": 2, + "build_time": "2024-11-15T11:09:32.320146930Z", + "created_at": "2024-11-15T11:09:32.245664587Z", + "updated_at": "2024-11-15T11:09:32.321127475Z" + }, + "deployed_version": { + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "dependencies": [], + "id": "2e4b6307-3db8-4eb8-93ce-7b06f405ed64", + "deployed": true, + "number": 2, + "built_at": "2024-11-15T11:09:32.320146930Z", + "secrets": [], + "status": "built", + "created_at": "2024-11-15T11:09:32.245664587Z", + "updated_at": "2024-11-15T11:09:32.321127475Z", + "runtime": "node16", + "supported_triggers": [ + { + "id": "post-login", + "version": "v2" + } + ] + }, + "all_changes_deployed": true }, "rawHeaders": [], "responseIsBinary": false @@ -5874,132 +6376,133 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/connections?per_page=100&page=0&include_totals=true", + "path": "/api/v2/actions/actions?page=0&per_page=100", "body": "", "status": 200, "response": { - "total": 3, - "start": 0, - "limit": 100, - "connections": [ + "actions": [ { - "id": "con_Jd86qQK1FtuUb7xn", - "options": { - "mfa": { - "active": true, - "return_enroll_settings": true - }, - "import_mode": false, - "customScripts": { - "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "create": "function create(user, callback) {\n // This script should create a user entry in your existing database. It will\n // be executed when a user attempts to sign up, or when a user is created\n // through the Auth0 dashboard or API.\n // When this script has finished executing, the Login script will be\n // executed immediately afterwards, to verify that the user was created\n // successfully.\n //\n // The user object will always contain the following properties:\n // * email: the user's email\n // * password: the password entered by the user, in plain text\n // * tenant: the name of this Auth0 account\n // * client_id: the client ID of the application where the user signed up, or\n // API key if created through the API or Auth0 dashboard\n // * connection: the name of this database connection\n //\n // There are three ways this script can finish:\n // 1. A user was successfully created\n // callback(null);\n // 2. This user already exists in your database\n // callback(new ValidationError(\"user_exists\", \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Create script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "delete": "function remove(id, callback) {\n // This script remove a user from your existing database.\n // It is executed whenever a user is deleted from the API or Auth0 dashboard.\n //\n // There are two ways that this script can finish:\n // 1. The user was removed successfully:\n // callback(null);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Delete script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "get_user": "function getByEmail(email, callback) {\n // This script should retrieve a user profile from your existing database,\n // without authenticating the user.\n // It is used to check if a user exists before executing flows that do not\n // require authentication (signup and password reset).\n //\n // There are three ways this script can finish:\n // 1. A user was successfully found. The profile should be in the following\n // format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema.\n // callback(null, profile);\n // 2. A user was not found\n // callback(null);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Get User script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" - }, - "disable_signup": false, - "passwordPolicy": "low", - "passkey_options": { - "challenge_ui": "both", - "local_enrollment_enabled": true, - "progressive_enrollment_enabled": true - }, - "password_history": { - "size": 5, - "enable": false - }, - "strategy_version": 2, - "requires_username": true, - "password_dictionary": { - "enable": true, - "dictionary": [] - }, - "authentication_methods": { - "passkey": { - "enabled": false - }, - "password": { - "enabled": true + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", + "name": "My Custom Action", + "supported_triggers": [ + { + "id": "post-login", + "version": "v2" + } + ], + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:10:23.631836207Z", + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "dependencies": [], + "runtime": "node16", + "status": "built", + "secrets": [], + "current_version": { + "id": "2e4b6307-3db8-4eb8-93ce-7b06f405ed64", + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "runtime": "node16", + "status": "BUILT", + "number": 2, + "build_time": "2024-11-15T11:09:32.320146930Z", + "created_at": "2024-11-15T11:09:32.245664587Z", + "updated_at": "2024-11-15T11:09:32.321127475Z" + }, + "deployed_version": { + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "dependencies": [], + "id": "2e4b6307-3db8-4eb8-93ce-7b06f405ed64", + "deployed": true, + "number": 2, + "built_at": "2024-11-15T11:09:32.320146930Z", + "secrets": [], + "status": "built", + "created_at": "2024-11-15T11:09:32.245664587Z", + "updated_at": "2024-11-15T11:09:32.321127475Z", + "runtime": "node16", + "supported_triggers": [ + { + "id": "post-login", + "version": "v2" } - }, - "brute_force_protection": true, - "password_no_personal_info": { - "enable": true - }, - "password_complexity_options": { - "min_length": 8 - }, - "enabledDatabaseCustomization": true + ] }, - "strategy": "auth0", - "name": "boo-baz-db-connection-test", - "is_domain_connection": false, - "realms": [ - "boo-baz-db-connection-test" - ], - "enabled_clients": [ - "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", - "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" - ] - }, + "all_changes_deployed": true + } + ], + "total": 1, + "per_page": 100 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "POST", + "path": "/api/v2/actions/actions/f921cc75-2b3b-4dd8-b1dd-d3c12f61df11/deploy", + "body": "", + "status": 200, + "response": { + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "dependencies": [], + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", + "deployed": false, + "number": 3, + "secrets": [], + "status": "built", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.438199235Z", + "runtime": "node16", + "supported_triggers": [ + { + "id": "post-login", + "version": "v2" + } + ], + "action": { + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", + "name": "My Custom Action", + "supported_triggers": [ + { + "id": "post-login", + "version": "v2" + } + ], + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:10:23.627524144Z", + "all_changes_deployed": false + } + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "organizations": [ { - "id": "con_SSAQuf1eAS4HALWp", - "options": { - "email": true, - "scope": [ - "email", - "profile" - ], - "profile": true - }, - "strategy": "google-oauth2", - "name": "google-oauth2", - "is_domain_connection": false, - "realms": [ - "google-oauth2" - ], - "enabled_clients": [ - "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", - "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" - ] + "id": "org_U1GPowP5fHVuX9iS", + "name": "org1", + "display_name": "Organization", + "branding": { + "colors": { + "page_background": "#fff5f5", + "primary": "#57ddff" + } + } }, { - "id": "con_7tTU8dpv9keeCE5Q", - "options": { - "mfa": { - "active": true, - "return_enroll_settings": true - }, - "passwordPolicy": "good", - "passkey_options": { - "challenge_ui": "both", - "local_enrollment_enabled": true, - "progressive_enrollment_enabled": true - }, - "strategy_version": 2, - "authentication_methods": { - "passkey": { - "enabled": false - }, - "password": { - "enabled": true - } - }, - "brute_force_protection": true - }, - "strategy": "auth0", - "name": "Username-Password-Authentication", - "is_domain_connection": false, - "realms": [ - "Username-Password-Authentication" - ], - "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" - ] + "id": "org_TyQVczsJUGAC5u58", + "name": "org2", + "display_name": "Organization2" } - ] + ], + "start": 0, + "limit": 100, + "total": 2 }, "rawHeaders": [], "responseIsBinary": false @@ -6508,6 +7011,189 @@ "rawHeaders": [], "responseIsBinary": false }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/enabled_connections", + "body": "", + "status": 200, + "response": [], + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/client-grants?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "client_grants": [], + "start": 0, + "limit": 100, + "total": 0 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/enabled_connections", + "body": "", + "status": 200, + "response": [], + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/client-grants?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "client_grants": [], + "start": 0, + "limit": 100, + "total": 0 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/connections?per_page=100&page=0&include_totals=true", + "body": "", + "status": 200, + "response": { + "total": 3, + "start": 0, + "limit": 100, + "connections": [ + { + "id": "con_Jd86qQK1FtuUb7xn", + "options": { + "mfa": { + "active": true, + "return_enroll_settings": true + }, + "import_mode": false, + "customScripts": { + "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "create": "function create(user, callback) {\n // This script should create a user entry in your existing database. It will\n // be executed when a user attempts to sign up, or when a user is created\n // through the Auth0 dashboard or API.\n // When this script has finished executing, the Login script will be\n // executed immediately afterwards, to verify that the user was created\n // successfully.\n //\n // The user object will always contain the following properties:\n // * email: the user's email\n // * password: the password entered by the user, in plain text\n // * tenant: the name of this Auth0 account\n // * client_id: the client ID of the application where the user signed up, or\n // API key if created through the API or Auth0 dashboard\n // * connection: the name of this database connection\n //\n // There are three ways this script can finish:\n // 1. A user was successfully created\n // callback(null);\n // 2. This user already exists in your database\n // callback(new ValidationError(\"user_exists\", \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Create script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "delete": "function remove(id, callback) {\n // This script remove a user from your existing database.\n // It is executed whenever a user is deleted from the API or Auth0 dashboard.\n //\n // There are two ways that this script can finish:\n // 1. The user was removed successfully:\n // callback(null);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Delete script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "get_user": "function getByEmail(email, callback) {\n // This script should retrieve a user profile from your existing database,\n // without authenticating the user.\n // It is used to check if a user exists before executing flows that do not\n // require authentication (signup and password reset).\n //\n // There are three ways this script can finish:\n // 1. A user was successfully found. The profile should be in the following\n // format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema.\n // callback(null, profile);\n // 2. A user was not found\n // callback(null);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Get User script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" + }, + "disable_signup": false, + "passwordPolicy": "low", + "passkey_options": { + "challenge_ui": "both", + "local_enrollment_enabled": true, + "progressive_enrollment_enabled": true + }, + "password_history": { + "size": 5, + "enable": false + }, + "strategy_version": 2, + "requires_username": true, + "password_dictionary": { + "enable": true, + "dictionary": [] + }, + "authentication_methods": { + "passkey": { + "enabled": false + }, + "password": { + "enabled": true + } + }, + "brute_force_protection": true, + "password_no_personal_info": { + "enable": true + }, + "password_complexity_options": { + "min_length": 8 + }, + "enabledDatabaseCustomization": true + }, + "strategy": "auth0", + "name": "boo-baz-db-connection-test", + "is_domain_connection": false, + "realms": [ + "boo-baz-db-connection-test" + ], + "enabled_clients": [ + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" + ] + }, + { + "id": "con_SSAQuf1eAS4HALWp", + "options": { + "email": true, + "scope": [ + "email", + "profile" + ], + "profile": true + }, + "strategy": "google-oauth2", + "name": "google-oauth2", + "is_domain_connection": false, + "realms": [ + "google-oauth2" + ], + "enabled_clients": [ + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" + ] + }, + { + "id": "con_7tTU8dpv9keeCE5Q", + "options": { + "mfa": { + "active": true, + "return_enroll_settings": true + }, + "passwordPolicy": "good", + "passkey_options": { + "challenge_ui": "both", + "local_enrollment_enabled": true, + "progressive_enrollment_enabled": true + }, + "strategy_version": 2, + "authentication_methods": { + "passkey": { + "enabled": false + }, + "password": { + "enabled": true + } + }, + "brute_force_protection": true + }, + "strategy": "auth0", + "name": "Username-Password-Authentication", + "is_domain_connection": false, + "realms": [ + "Username-Password-Authentication" + ], + "enabled_clients": [ + "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" + ] + } + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -6520,8 +7206,282 @@ "limit": 100, "client_grants": [ { - "id": "cgr_KE5stboZltPop0tc", - "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] + }, + { + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] + }, + { + "id": "cgr_t3j1isctGZmOVylt", + "client_id": "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -6637,6 +7597,11 @@ "read:entitlements", "read:attack_protection", "update:attack_protection", + "read:organizations_summary", + "create:authentication_methods", + "read:authentication_methods", + "update:authentication_methods", + "delete:authentication_methods", "read:organizations", "update:organizations", "create:organizations", @@ -6653,341 +7618,566 @@ "delete:organization_member_roles", "create:organization_invitations", "read:organization_invitations", - "delete:organization_invitations" + "delete:organization_invitations", + "read:scim_config", + "create:scim_config", + "update:scim_config", + "delete:scim_config", + "create:scim_token", + "read:scim_token", + "delete:scim_token", + "delete:phone_providers", + "create:phone_providers", + "read:phone_providers", + "update:phone_providers", + "delete:phone_templates", + "create:phone_templates", + "read:phone_templates", + "update:phone_templates", + "create:encryption_keys", + "read:encryption_keys", + "update:encryption_keys", + "delete:encryption_keys", + "read:sessions", + "delete:sessions", + "read:refresh_tokens", + "delete:refresh_tokens", + "create:self_service_profiles", + "read:self_service_profiles", + "update:self_service_profiles", + "delete:self_service_profiles", + "create:sso_access_tickets", + "read:forms", + "update:forms", + "delete:forms", + "create:forms", + "read:flows", + "update:flows", + "delete:flows", + "create:flows", + "read:flows_vault", + "read:flows_vault_connections", + "update:flows_vault_connections", + "delete:flows_vault_connections", + "create:flows_vault_connections", + "read:flows_executions", + "delete:flows_executions", + "read:connections_options", + "update:connections_options", + "read:self_service_profile_custom_texts", + "update:self_service_profile_custom_texts", + "read:client_credentials", + "create:client_credentials", + "update:client_credentials", + "delete:client_credentials", + "read:organization_client_grants", + "create:organization_client_grants", + "delete:organization_client_grants" ] + } + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/clients?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "total": 10, + "start": 0, + "limit": 100, + "clients": [ + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Deploy CLI", + "is_first_party": true, + "oidc_conformant": true, + "sso_disabled": false, + "cross_origin_auth": false, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "cross_origin_authentication": true, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true + }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Default App", + "callbacks": [], + "cross_origin_auth": false, + "is_first_party": true, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", + "client_credentials" + ], + "custom_login_page_on": true + }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "API Explorer Application", + "allowed_clients": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true + }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, + "cross_origin_auth": false, + "is_first_party": true, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true }, { - "id": "cgr_XRy0Lk9J8dl7iIt0", - "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations" - ] + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "app_type": "regular_web", + "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", + "client_credentials" + ], + "web_origins": [], + "custom_login_page_on": true + }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Terraform Provider", + "cross_origin_auth": false, + "is_first_party": true, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true }, { - "id": "cgr_t3j1isctGZmOVylt", - "client_id": "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations_summary", - "create:authentication_methods", - "read:authentication_methods", - "update:authentication_methods", - "delete:authentication_methods", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations", - "read:scim_config", - "create:scim_config", - "update:scim_config", - "delete:scim_config", - "create:scim_token", - "read:scim_token", - "delete:scim_token", - "delete:phone_providers", - "create:phone_providers", - "read:phone_providers", - "update:phone_providers", - "delete:phone_templates", - "create:phone_templates", - "read:phone_templates", - "update:phone_templates", - "create:encryption_keys", - "read:encryption_keys", - "update:encryption_keys", - "delete:encryption_keys", - "read:sessions", - "delete:sessions", - "read:refresh_tokens", - "delete:refresh_tokens", - "create:self_service_profiles", - "read:self_service_profiles", - "update:self_service_profiles", - "delete:self_service_profiles", - "create:sso_access_tickets", - "read:forms", - "update:forms", - "delete:forms", - "create:forms", - "read:flows", - "update:flows", - "delete:flows", - "create:flows", - "read:flows_vault", - "read:flows_vault_connections", - "update:flows_vault_connections", - "delete:flows_vault_connections", - "create:flows_vault_connections", - "read:flows_executions", - "delete:flows_executions", - "read:connections_options", - "update:connections_options", - "read:self_service_profile_custom_texts", - "update:self_service_profile_custom_texts", - "read:client_credentials", - "create:client_credentials", - "update:client_credentials", - "delete:client_credentials", - "read:organization_client_grants", - "create:organization_client_grants", - "delete:organization_client_grants" - ] + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "The Default App", + "allowed_clients": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": false, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "rotation_type": "non-rotating" + }, + "sso": false, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", + "client_credentials" + ], + "custom_login_page_on": true + }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Test SPA", + "allowed_clients": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "expiring", + "leeway": 0, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "none", + "app_type": "spa", + "grant_types": [ + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" + ], + "custom_login_page_on": true + }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "auth0-deploy-cli-extension", + "allowed_clients": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true + }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": true, + "callbacks": [], + "is_first_party": true, + "name": "All Applications", + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "rotation_type": "non-rotating" + }, + "owners": [ + "mr|samlp|okta|will.vedder@auth0.com", + "mr|google-oauth2|102002633619863830825", + "mr|samlp|okta|frederik.prijck@auth0.com", + "mr|google-oauth2|109614534713742077035", + "mr|google-oauth2|116771660953104383819" + ], + "custom_login_page": "TEST123\n", + "cross_origin_authentication": true, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "Isi93ibGHIGwmdYjsLwTOn7Gu7nwxU3V", + "client_secret": "[REDACTED]", + "custom_login_page_on": true } ] }, @@ -6996,10 +8186,25 @@ }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/organizations", + "method": "PATCH", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58", + "body": { + "display_name": "Organization2" + }, + "status": 200, + "response": { + "id": "org_TyQVczsJUGAC5u58", + "display_name": "Organization2", + "name": "org2" + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS", "body": { - "name": "org1", "branding": { "colors": { "page_background": "#fff5f5", @@ -7008,34 +8213,17 @@ }, "display_name": "Organization" }, - "status": 201, + "status": 200, "response": { - "id": "org_U1GPowP5fHVuX9iS", - "display_name": "Organization", - "name": "org1", "branding": { "colors": { "page_background": "#fff5f5", "primary": "#57ddff" } - } - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "POST", - "path": "/api/v2/organizations", - "body": { - "name": "org2", - "display_name": "Organization2" - }, - "status": 201, - "response": { - "id": "org_TyQVczsJUGAC5u58", - "display_name": "Organization2", - "name": "org2" + }, + "id": "org_U1GPowP5fHVuX9iS", + "display_name": "Organization", + "name": "org1" }, "rawHeaders": [], "responseIsBinary": false @@ -8604,7 +9792,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/recovery-code", + "path": "/api/v2/guardian/factors/sms", "body": { "enabled": false }, @@ -8618,7 +9806,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/sms", + "path": "/api/v2/guardian/factors/webauthn-roaming", "body": { "enabled": false }, @@ -8632,7 +9820,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/webauthn-roaming", + "path": "/api/v2/guardian/factors/recovery-code", "body": { "enabled": false }, @@ -8646,7 +9834,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/otp", + "path": "/api/v2/guardian/factors/email", "body": { "enabled": false }, @@ -8660,7 +9848,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/push-notification", + "path": "/api/v2/guardian/factors/otp", "body": { "enabled": false }, @@ -8674,7 +9862,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/email", + "path": "/api/v2/guardian/factors/push-notification", "body": { "enabled": false }, @@ -8738,6 +9926,31 @@ "rawHeaders": [], "responseIsBinary": false }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/attack-protection/breached-password-detection", + "body": { + "enabled": false, + "shields": [], + "admin_notification_frequency": [], + "method": "standard" + }, + "status": 200, + "response": { + "enabled": false, + "shields": [], + "admin_notification_frequency": [], + "method": "standard", + "stage": { + "pre-user-registration": { + "shields": [] + } + } + }, + "rawHeaders": [], + "responseIsBinary": false + }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", @@ -8797,40 +10010,15 @@ "max_attempts": 10 }, "status": 200, - "response": { - "enabled": true, - "shields": [ - "block", - "user_notification" - ], - "mode": "count_per_identifier_and_ip", - "allowlist": [], - "max_attempts": 10 - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PATCH", - "path": "/api/v2/attack-protection/breached-password-detection", - "body": { - "enabled": false, - "shields": [], - "admin_notification_frequency": [], - "method": "standard" - }, - "status": 200, - "response": { - "enabled": false, - "shields": [], - "admin_notification_frequency": [], - "method": "standard", - "stage": { - "pre-user-registration": { - "shields": [] - } - } + "response": { + "enabled": true, + "shields": [ + "block", + "user_notification" + ], + "mode": "count_per_identifier_and_ip", + "allowlist": [], + "max_attempts": 10 }, "rawHeaders": [], "responseIsBinary": false @@ -9514,8 +10702,8 @@ "Username-Password-Authentication" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" + "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -9626,8 +10814,8 @@ "Username-Password-Authentication" ], "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" + "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -9669,8 +10857,8 @@ "name": "Username-Password-Authentication", "is_domain_connection": false, "enabled_clients": [ - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE" + "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ], "realms": [ "Username-Password-Authentication" @@ -11628,33 +12816,33 @@ } ], "created_at": "2024-11-07T10:04:42.823412691Z", - "updated_at": "2024-11-07T10:04:42.845236889Z", + "updated_at": "2024-11-15T11:10:23.631836207Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "built", "secrets": [], "current_version": { - "id": "13d6692b-486f-4307-8957-64e59dfaae70", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", - "number": 1, - "build_time": "2024-11-07T10:04:43.564446766Z", - "created_at": "2024-11-07T10:04:43.485782961Z", - "updated_at": "2024-11-07T10:04:43.567038665Z" + "number": 3, + "build_time": "2024-11-15T11:10:24.505104975Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "13d6692b-486f-4307-8957-64e59dfaae70", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "deployed": true, - "number": 1, - "built_at": "2024-11-07T10:04:43.564446766Z", + "number": 3, + "built_at": "2024-11-15T11:10:24.505104975Z", "secrets": [], "status": "built", - "created_at": "2024-11-07T10:04:43.485782961Z", - "updated_at": "2024-11-07T10:04:43.567038665Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z", "runtime": "node16", "supported_triggers": [ { @@ -11690,33 +12878,33 @@ } ], "created_at": "2024-11-07T10:04:42.823412691Z", - "updated_at": "2024-11-07T10:04:42.845236889Z", + "updated_at": "2024-11-15T11:10:23.631836207Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "built", "secrets": [], "current_version": { - "id": "13d6692b-486f-4307-8957-64e59dfaae70", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", - "number": 1, - "build_time": "2024-11-07T10:04:43.564446766Z", - "created_at": "2024-11-07T10:04:43.485782961Z", - "updated_at": "2024-11-07T10:04:43.567038665Z" + "number": 3, + "build_time": "2024-11-15T11:10:24.505104975Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "13d6692b-486f-4307-8957-64e59dfaae70", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "deployed": true, - "number": 1, - "built_at": "2024-11-07T10:04:43.564446766Z", + "number": 3, + "built_at": "2024-11-15T11:10:24.505104975Z", "secrets": [], "status": "built", - "created_at": "2024-11-07T10:04:43.485782961Z", - "updated_at": "2024-11-07T10:04:43.567038665Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z", "runtime": "node16", "supported_triggers": [ { @@ -12166,772 +13354,286 @@ }, "client_aliases": [], "token_endpoint_auth_method": "none", - "app_type": "spa", - "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" - ], - "custom_login_page_on": true - }, - { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", - "allowed_clients": [], - "callbacks": [], - "client_metadata": {}, - "cross_origin_auth": false, - "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", - "grant_types": [ - "client_credentials" - ], - "custom_login_page_on": true - }, - { - "tenant": "auth0-deploy-cli-e2e", - "global": true, - "callbacks": [], - "is_first_party": true, - "name": "All Applications", - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "rotation_type": "non-rotating" - }, - "owners": [ - "mr|samlp|okta|will.vedder@auth0.com", - "mr|google-oauth2|102002633619863830825", - "mr|samlp|okta|frederik.prijck@auth0.com", - "mr|google-oauth2|109614534713742077035", - "mr|google-oauth2|116771660953104383819" - ], - "custom_login_page": "TEST123\n", - "cross_origin_authentication": true, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "Isi93ibGHIGwmdYjsLwTOn7Gu7nwxU3V", - "client_secret": "[REDACTED]", - "custom_login_page_on": true - } - ] - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/enabled_connections", - "body": "", - "status": 200, - "response": [], - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/client-grants?page=0&per_page=100&include_totals=true", - "body": "", - "status": 200, - "response": { - "client_grants": [], - "start": 0, - "limit": 100, - "total": 0 - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/enabled_connections", - "body": "", - "status": 200, - "response": [], - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/client-grants?page=0&per_page=100&include_totals=true", - "body": "", - "status": 200, - "response": { - "client_grants": [], - "start": 0, - "limit": 100, - "total": 0 - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/connections?per_page=100&page=0&include_totals=true", - "body": "", - "status": 200, - "response": { - "total": 3, - "start": 0, - "limit": 100, - "connections": [ - { - "id": "con_Jd86qQK1FtuUb7xn", - "options": { - "mfa": { - "active": true, - "return_enroll_settings": true - }, - "import_mode": false, - "customScripts": { - "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "create": "function create(user, callback) {\n // This script should create a user entry in your existing database. It will\n // be executed when a user attempts to sign up, or when a user is created\n // through the Auth0 dashboard or API.\n // When this script has finished executing, the Login script will be\n // executed immediately afterwards, to verify that the user was created\n // successfully.\n //\n // The user object will always contain the following properties:\n // * email: the user's email\n // * password: the password entered by the user, in plain text\n // * tenant: the name of this Auth0 account\n // * client_id: the client ID of the application where the user signed up, or\n // API key if created through the API or Auth0 dashboard\n // * connection: the name of this database connection\n //\n // There are three ways this script can finish:\n // 1. A user was successfully created\n // callback(null);\n // 2. This user already exists in your database\n // callback(new ValidationError(\"user_exists\", \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Create script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "delete": "function remove(id, callback) {\n // This script remove a user from your existing database.\n // It is executed whenever a user is deleted from the API or Auth0 dashboard.\n //\n // There are two ways that this script can finish:\n // 1. The user was removed successfully:\n // callback(null);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Delete script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "get_user": "function getByEmail(email, callback) {\n // This script should retrieve a user profile from your existing database,\n // without authenticating the user.\n // It is used to check if a user exists before executing flows that do not\n // require authentication (signup and password reset).\n //\n // There are three ways this script can finish:\n // 1. A user was successfully found. The profile should be in the following\n // format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema.\n // callback(null, profile);\n // 2. A user was not found\n // callback(null);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Get User script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" - }, - "disable_signup": false, - "passwordPolicy": "low", - "passkey_options": { - "challenge_ui": "both", - "local_enrollment_enabled": true, - "progressive_enrollment_enabled": true - }, - "password_history": { - "size": 5, - "enable": false - }, - "strategy_version": 2, - "requires_username": true, - "password_dictionary": { - "enable": true, - "dictionary": [] - }, - "authentication_methods": { - "passkey": { - "enabled": false - }, - "password": { - "enabled": true - } - }, - "brute_force_protection": true, - "password_no_personal_info": { - "enable": true - }, - "password_complexity_options": { - "min_length": 8 - }, - "enabledDatabaseCustomization": true - }, - "strategy": "auth0", - "name": "boo-baz-db-connection-test", - "is_domain_connection": false, - "realms": [ - "boo-baz-db-connection-test" - ], - "enabled_clients": [ - "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", - "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" - ] - }, - { - "id": "con_SSAQuf1eAS4HALWp", - "options": { - "email": true, - "scope": [ - "email", - "profile" - ], - "profile": true - }, - "strategy": "google-oauth2", - "name": "google-oauth2", - "is_domain_connection": false, - "realms": [ - "google-oauth2" + "app_type": "spa", + "grant_types": [ + "authorization_code", + "implicit", + "refresh_token" ], - "enabled_clients": [ - "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", - "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" - ] + "web_origins": [ + "http://localhost:3000" + ], + "custom_login_page_on": true }, { - "id": "con_7tTU8dpv9keeCE5Q", - "options": { - "mfa": { - "active": true, - "return_enroll_settings": true - }, - "passwordPolicy": "good", - "passkey_options": { - "challenge_ui": "both", - "local_enrollment_enabled": true, - "progressive_enrollment_enabled": true - }, - "strategy_version": 2, - "authentication_methods": { - "passkey": { - "enabled": false - }, - "password": { - "enabled": true - } + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "auth0-deploy-cli-extension", + "allowed_clients": [], + "callbacks": [], + "client_metadata": {}, + "cross_origin_auth": false, + "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false }, - "brute_force_protection": true + "facebook": { + "enabled": false + } }, - "strategy": "auth0", - "name": "Username-Password-Authentication", - "is_domain_connection": false, - "realms": [ - "Username-Password-Authentication" + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } ], - "enabled_clients": [ - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" - ] - } - ] - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/client-grants?per_page=100&page=0&include_totals=true", - "body": "", - "status": 200, - "response": { - "total": 3, - "start": 0, - "limit": 100, - "client_grants": [ - { - "id": "cgr_KE5stboZltPop0tc", - "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations" - ] + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true }, { - "id": "cgr_XRy0Lk9J8dl7iIt0", - "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations" + "tenant": "auth0-deploy-cli-e2e", + "global": true, + "callbacks": [], + "is_first_party": true, + "name": "All Applications", + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "rotation_type": "non-rotating" + }, + "owners": [ + "mr|samlp|okta|will.vedder@auth0.com", + "mr|google-oauth2|102002633619863830825", + "mr|samlp|okta|frederik.prijck@auth0.com", + "mr|google-oauth2|109614534713742077035", + "mr|google-oauth2|116771660953104383819" + ], + "custom_login_page": "TEST123\n", + "cross_origin_authentication": true, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "Isi93ibGHIGwmdYjsLwTOn7Gu7nwxU3V", + "client_secret": "[REDACTED]", + "custom_login_page_on": true + } + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/enabled_connections", + "body": "", + "status": 200, + "response": [], + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/client-grants?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "client_grants": [], + "start": 0, + "limit": 100, + "total": 0 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/enabled_connections", + "body": "", + "status": 200, + "response": [], + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/client-grants?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "client_grants": [], + "start": 0, + "limit": 100, + "total": 0 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/connections?per_page=100&page=0&include_totals=true", + "body": "", + "status": 200, + "response": { + "total": 3, + "start": 0, + "limit": 100, + "connections": [ + { + "id": "con_Jd86qQK1FtuUb7xn", + "options": { + "mfa": { + "active": true, + "return_enroll_settings": true + }, + "import_mode": false, + "customScripts": { + "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "create": "function create(user, callback) {\n // This script should create a user entry in your existing database. It will\n // be executed when a user attempts to sign up, or when a user is created\n // through the Auth0 dashboard or API.\n // When this script has finished executing, the Login script will be\n // executed immediately afterwards, to verify that the user was created\n // successfully.\n //\n // The user object will always contain the following properties:\n // * email: the user's email\n // * password: the password entered by the user, in plain text\n // * tenant: the name of this Auth0 account\n // * client_id: the client ID of the application where the user signed up, or\n // API key if created through the API or Auth0 dashboard\n // * connection: the name of this database connection\n //\n // There are three ways this script can finish:\n // 1. A user was successfully created\n // callback(null);\n // 2. This user already exists in your database\n // callback(new ValidationError(\"user_exists\", \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Create script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "delete": "function remove(id, callback) {\n // This script remove a user from your existing database.\n // It is executed whenever a user is deleted from the API or Auth0 dashboard.\n //\n // There are two ways that this script can finish:\n // 1. The user was removed successfully:\n // callback(null);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Delete script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "get_user": "function getByEmail(email, callback) {\n // This script should retrieve a user profile from your existing database,\n // without authenticating the user.\n // It is used to check if a user exists before executing flows that do not\n // require authentication (signup and password reset).\n //\n // There are three ways this script can finish:\n // 1. A user was successfully found. The profile should be in the following\n // format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema.\n // callback(null, profile);\n // 2. A user was not found\n // callback(null);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Get User script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" + }, + "disable_signup": false, + "passwordPolicy": "low", + "passkey_options": { + "challenge_ui": "both", + "local_enrollment_enabled": true, + "progressive_enrollment_enabled": true + }, + "password_history": { + "size": 5, + "enable": false + }, + "strategy_version": 2, + "requires_username": true, + "password_dictionary": { + "enable": true, + "dictionary": [] + }, + "authentication_methods": { + "passkey": { + "enabled": false + }, + "password": { + "enabled": true + } + }, + "brute_force_protection": true, + "password_no_personal_info": { + "enable": true + }, + "password_complexity_options": { + "min_length": 8 + }, + "enabledDatabaseCustomization": true + }, + "strategy": "auth0", + "name": "boo-baz-db-connection-test", + "is_domain_connection": false, + "realms": [ + "boo-baz-db-connection-test" + ], + "enabled_clients": [ + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "cgr_t3j1isctGZmOVylt", - "client_id": "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations_summary", - "create:authentication_methods", - "read:authentication_methods", - "update:authentication_methods", - "delete:authentication_methods", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations", - "read:scim_config", - "create:scim_config", - "update:scim_config", - "delete:scim_config", - "create:scim_token", - "read:scim_token", - "delete:scim_token", - "delete:phone_providers", - "create:phone_providers", - "read:phone_providers", - "update:phone_providers", - "delete:phone_templates", - "create:phone_templates", - "read:phone_templates", - "update:phone_templates", - "create:encryption_keys", - "read:encryption_keys", - "update:encryption_keys", - "delete:encryption_keys", - "read:sessions", - "delete:sessions", - "read:refresh_tokens", - "delete:refresh_tokens", - "create:self_service_profiles", - "read:self_service_profiles", - "update:self_service_profiles", - "delete:self_service_profiles", - "create:sso_access_tickets", - "read:forms", - "update:forms", - "delete:forms", - "create:forms", - "read:flows", - "update:flows", - "delete:flows", - "create:flows", - "read:flows_vault", - "read:flows_vault_connections", - "update:flows_vault_connections", - "delete:flows_vault_connections", - "create:flows_vault_connections", - "read:flows_executions", - "delete:flows_executions", - "read:connections_options", - "update:connections_options", - "read:self_service_profile_custom_texts", - "update:self_service_profile_custom_texts", - "read:client_credentials", - "create:client_credentials", - "update:client_credentials", - "delete:client_credentials", - "read:organization_client_grants", - "create:organization_client_grants", - "delete:organization_client_grants" + "id": "con_SSAQuf1eAS4HALWp", + "options": { + "email": true, + "scope": [ + "email", + "profile" + ], + "profile": true + }, + "strategy": "google-oauth2", + "name": "google-oauth2", + "is_domain_connection": false, + "realms": [ + "google-oauth2" + ], + "enabled_clients": [ + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" + ] + }, + { + "id": "con_7tTU8dpv9keeCE5Q", + "options": { + "mfa": { + "active": true, + "return_enroll_settings": true + }, + "passwordPolicy": "good", + "passkey_options": { + "challenge_ui": "both", + "local_enrollment_enabled": true, + "progressive_enrollment_enabled": true + }, + "strategy_version": 2, + "authentication_methods": { + "passkey": { + "enabled": false + }, + "password": { + "enabled": true + } + }, + "brute_force_protection": true + }, + "strategy": "auth0", + "name": "Username-Password-Authentication", + "is_domain_connection": false, + "realms": [ + "Username-Password-Authentication" + ], + "enabled_clients": [ + "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -13404,39 +14106,525 @@ "custom_login_page_on": true }, { - "tenant": "auth0-deploy-cli-e2e", - "global": true, - "callbacks": [], - "is_first_party": true, - "name": "All Applications", - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "rotation_type": "non-rotating" - }, - "owners": [ - "mr|samlp|okta|will.vedder@auth0.com", - "mr|google-oauth2|102002633619863830825", - "mr|samlp|okta|frederik.prijck@auth0.com", - "mr|google-oauth2|109614534713742077035", - "mr|google-oauth2|116771660953104383819" - ], - "custom_login_page": "TEST123\n", - "cross_origin_authentication": true, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "Isi93ibGHIGwmdYjsLwTOn7Gu7nwxU3V", - "client_secret": "[REDACTED]", - "custom_login_page_on": true + "tenant": "auth0-deploy-cli-e2e", + "global": true, + "callbacks": [], + "is_first_party": true, + "name": "All Applications", + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "rotation_type": "non-rotating" + }, + "owners": [ + "mr|samlp|okta|will.vedder@auth0.com", + "mr|google-oauth2|102002633619863830825", + "mr|samlp|okta|frederik.prijck@auth0.com", + "mr|google-oauth2|109614534713742077035", + "mr|google-oauth2|116771660953104383819" + ], + "custom_login_page": "TEST123\n", + "cross_origin_authentication": true, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "Isi93ibGHIGwmdYjsLwTOn7Gu7nwxU3V", + "client_secret": "[REDACTED]", + "custom_login_page_on": true + } + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/client-grants?per_page=100&page=0&include_totals=true", + "body": "", + "status": 200, + "response": { + "total": 3, + "start": 0, + "limit": 100, + "client_grants": [ + { + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] + }, + { + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] + }, + { + "id": "cgr_t3j1isctGZmOVylt", + "client_id": "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations_summary", + "create:authentication_methods", + "read:authentication_methods", + "update:authentication_methods", + "delete:authentication_methods", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations", + "read:scim_config", + "create:scim_config", + "update:scim_config", + "delete:scim_config", + "create:scim_token", + "read:scim_token", + "delete:scim_token", + "delete:phone_providers", + "create:phone_providers", + "read:phone_providers", + "update:phone_providers", + "delete:phone_templates", + "create:phone_templates", + "read:phone_templates", + "update:phone_templates", + "create:encryption_keys", + "read:encryption_keys", + "update:encryption_keys", + "delete:encryption_keys", + "read:sessions", + "delete:sessions", + "read:refresh_tokens", + "delete:refresh_tokens", + "create:self_service_profiles", + "read:self_service_profiles", + "update:self_service_profiles", + "delete:self_service_profiles", + "create:sso_access_tickets", + "read:forms", + "update:forms", + "delete:forms", + "create:forms", + "read:flows", + "update:flows", + "delete:flows", + "create:flows", + "read:flows_vault", + "read:flows_vault_connections", + "update:flows_vault_connections", + "delete:flows_vault_connections", + "create:flows_vault_connections", + "read:flows_executions", + "delete:flows_executions", + "read:connections_options", + "update:connections_options", + "read:self_service_profile_custom_texts", + "update:self_service_profile_custom_texts", + "read:client_credentials", + "create:client_credentials", + "update:client_credentials", + "delete:client_credentials", + "read:organization_client_grants", + "create:organization_client_grants", + "delete:organization_client_grants" + ] } ] }, @@ -15301,7 +16489,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/reset_email", + "path": "/api/v2/email-templates/blocked_account", "body": "", "status": 404, "response": { @@ -15316,7 +16504,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/change_password", + "path": "/api/v2/email-templates/password_reset", "body": "", "status": 404, "response": { @@ -15331,7 +16519,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/verify_email_by_code", + "path": "/api/v2/email-templates/stolen_credentials", "body": "", "status": 404, "response": { @@ -15346,7 +16534,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/blocked_account", + "path": "/api/v2/email-templates/change_password", "body": "", "status": 404, "response": { @@ -15361,14 +16549,18 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/user_invitation", + "path": "/api/v2/email-templates/welcome_email", "body": "", - "status": 404, + "status": 200, "response": { - "statusCode": 404, - "error": "Not Found", - "message": "The template does not exist.", - "errorCode": "inexistent_email_template" + "template": "welcome_email", + "body": "\n \n

Welcome!

\n \n\n", + "from": "", + "resultUrl": "https://example.com/welcome", + "subject": "Welcome", + "syntax": "liquid", + "urlLifetimeInSeconds": 3600, + "enabled": false }, "rawHeaders": [], "responseIsBinary": false @@ -15376,7 +16568,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/stolen_credentials", + "path": "/api/v2/email-templates/verify_email_by_code", "body": "", "status": 404, "response": { @@ -15391,7 +16583,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/password_reset", + "path": "/api/v2/email-templates/user_invitation", "body": "", "status": 404, "response": { @@ -15406,18 +16598,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/welcome_email", + "path": "/api/v2/email-templates/reset_email", "body": "", - "status": 200, + "status": 404, "response": { - "template": "welcome_email", - "body": "\n \n

Welcome!

\n \n\n", - "from": "", - "resultUrl": "https://example.com/welcome", - "subject": "Welcome", - "syntax": "liquid", - "urlLifetimeInSeconds": 3600, - "enabled": false + "statusCode": 404, + "error": "Not Found", + "message": "The template does not exist.", + "errorCode": "inexistent_email_template" }, "rawHeaders": [], "responseIsBinary": false @@ -15992,7 +17180,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/guardian/factors/push-notification/providers/sns", + "path": "/api/v2/guardian/factors/sms/providers/twilio", "body": "", "status": 200, "response": {}, @@ -16002,7 +17190,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/guardian/factors/sms/providers/twilio", + "path": "/api/v2/guardian/factors/push-notification/providers/sns", "body": "", "status": 200, "response": {}, @@ -16265,7 +17453,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login/custom-text/en", + "path": "/api/v2/prompts/login-id/custom-text/en", "body": "", "status": 200, "response": {}, @@ -16275,7 +17463,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-id/custom-text/en", + "path": "/api/v2/prompts/login-password/custom-text/en", "body": "", "status": 200, "response": {}, @@ -16285,7 +17473,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-password/custom-text/en", + "path": "/api/v2/prompts/login/custom-text/en", "body": "", "status": 200, "response": {}, @@ -16325,7 +17513,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/reset-password/custom-text/en", + "path": "/api/v2/prompts/signup-password/custom-text/en", "body": "", "status": 200, "response": {}, @@ -16335,7 +17523,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup-password/custom-text/en", + "path": "/api/v2/prompts/reset-password/custom-text/en", "body": "", "status": 200, "response": {}, @@ -16345,7 +17533,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/consent/custom-text/en", + "path": "/api/v2/prompts/mfa-push/custom-text/en", "body": "", "status": 200, "response": {}, @@ -16365,7 +17553,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-push/custom-text/en", + "path": "/api/v2/prompts/consent/custom-text/en", "body": "", "status": 200, "response": {}, @@ -16425,7 +17613,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa/custom-text/en", + "path": "/api/v2/prompts/mfa-recovery-code/custom-text/en", "body": "", "status": 200, "response": {}, @@ -16445,7 +17633,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-recovery-code/custom-text/en", + "path": "/api/v2/prompts/mfa/custom-text/en", "body": "", "status": 200, "response": {}, @@ -16525,7 +17713,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-password/partials", + "path": "/api/v2/prompts/login/partials", "body": "", "status": 200, "response": {}, @@ -16535,7 +17723,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login/partials", + "path": "/api/v2/prompts/login-password/partials", "body": "", "status": 200, "response": {}, @@ -16555,7 +17743,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup-id/partials", + "path": "/api/v2/prompts/login-passwordless/partials", "body": "", "status": 200, "response": {}, @@ -16565,7 +17753,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-passwordless/partials", + "path": "/api/v2/prompts/signup-password/partials", "body": "", "status": 200, "response": {}, @@ -16575,7 +17763,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup-password/partials", + "path": "/api/v2/prompts/signup-id/partials", "body": "", "status": 200, "response": {}, @@ -16600,33 +17788,33 @@ } ], "created_at": "2024-11-07T10:04:42.823412691Z", - "updated_at": "2024-11-07T10:04:42.845236889Z", + "updated_at": "2024-11-15T11:10:23.631836207Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "built", "secrets": [], "current_version": { - "id": "13d6692b-486f-4307-8957-64e59dfaae70", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", - "number": 1, - "build_time": "2024-11-07T10:04:43.564446766Z", - "created_at": "2024-11-07T10:04:43.485782961Z", - "updated_at": "2024-11-07T10:04:43.567038665Z" + "number": 3, + "build_time": "2024-11-15T11:10:24.505104975Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "13d6692b-486f-4307-8957-64e59dfaae70", + "id": "01554a84-efb6-4db4-a934-a0c58475a00c", "deployed": true, - "number": 1, - "built_at": "2024-11-07T10:04:43.564446766Z", + "number": 3, + "built_at": "2024-11-15T11:10:24.505104975Z", "secrets": [], "status": "built", - "created_at": "2024-11-07T10:04:43.485782961Z", - "updated_at": "2024-11-07T10:04:43.567038665Z", + "created_at": "2024-11-15T11:10:24.438199235Z", + "updated_at": "2024-11-15T11:10:24.506080965Z", "runtime": "node16", "supported_triggers": [ { @@ -16652,6 +17840,17 @@ "status": 200, "response": { "triggers": [ + { + "id": "post-login", + "version": "v1", + "status": "DEPRECATED", + "runtimes": [ + "node12" + ], + "default_runtime": "node12", + "binding_policy": "trigger-bound", + "compatible_triggers": [] + }, { "id": "post-login", "version": "v3", @@ -16683,7 +17882,20 @@ "compatible_triggers": [] }, { - "id": "post-login", + "id": "credentials-exchange", + "version": "v2", + "status": "CURRENT", + "runtimes": [ + "node12", + "node16", + "node18-actions" + ], + "default_runtime": "node18-actions", + "binding_policy": "trigger-bound", + "compatible_triggers": [] + }, + { + "id": "credentials-exchange", "version": "v1", "status": "DEPRECATED", "runtimes": [ @@ -16694,7 +17906,7 @@ "compatible_triggers": [] }, { - "id": "credentials-exchange", + "id": "pre-user-registration", "version": "v2", "status": "CURRENT", "runtimes": [ @@ -16707,7 +17919,7 @@ "compatible_triggers": [] }, { - "id": "credentials-exchange", + "id": "pre-user-registration", "version": "v1", "status": "DEPRECATED", "runtimes": [ @@ -16718,7 +17930,7 @@ "compatible_triggers": [] }, { - "id": "pre-user-registration", + "id": "post-user-registration", "version": "v1", "status": "DEPRECATED", "runtimes": [ @@ -16728,19 +17940,6 @@ "binding_policy": "trigger-bound", "compatible_triggers": [] }, - { - "id": "pre-user-registration", - "version": "v2", - "status": "CURRENT", - "runtimes": [ - "node12", - "node16", - "node18-actions" - ], - "default_runtime": "node18-actions", - "binding_policy": "trigger-bound", - "compatible_triggers": [] - }, { "id": "post-user-registration", "version": "v2", @@ -16755,7 +17954,7 @@ "compatible_triggers": [] }, { - "id": "post-user-registration", + "id": "post-change-password", "version": "v1", "status": "DEPRECATED", "runtimes": [ @@ -16779,13 +17978,12 @@ "compatible_triggers": [] }, { - "id": "post-change-password", + "id": "send-phone-message", "version": "v1", "status": "DEPRECATED", "runtimes": [ "node12" ], - "default_runtime": "node12", "binding_policy": "trigger-bound", "compatible_triggers": [] }, @@ -16802,16 +18000,6 @@ "binding_policy": "trigger-bound", "compatible_triggers": [] }, - { - "id": "send-phone-message", - "version": "v1", - "status": "DEPRECATED", - "runtimes": [ - "node12" - ], - "binding_policy": "trigger-bound", - "compatible_triggers": [] - }, { "id": "password-reset-post-challenge", "version": "v1", @@ -17760,5 +18948,80 @@ }, "rawHeaders": [], "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/forms?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "forms": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "flows": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "flows": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "connections": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "connections": [] + }, + "rawHeaders": [], + "responseIsBinary": false } ] \ No newline at end of file diff --git a/test/e2e/recordings/should-dump-and-deploy-without-throwing-an-error.json b/test/e2e/recordings/should-dump-and-deploy-without-throwing-an-error.json index bd5950ef..e5f69dce 100644 --- a/test/e2e/recordings/should-dump-and-deploy-without-throwing-an-error.json +++ b/test/e2e/recordings/should-dump-and-deploy-without-throwing-an-error.json @@ -11,7 +11,7 @@ "limit": 100, "rules": [ { - "id": "rul_leMju5CJAwJe3nkj", + "id": "rul_ANXcw440qOoeEht3", "enabled": true, "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", "name": "my-rule", @@ -1038,7 +1038,7 @@ "subject": "deprecated" } ], - "client_id": "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1091,7 +1091,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1111,21 +1111,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -1145,8 +1136,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1154,25 +1144,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -1192,7 +1189,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1200,21 +1198,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -1236,7 +1236,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1289,7 +1289,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1311,9 +1311,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -1327,13 +1332,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -1344,7 +1349,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1353,10 +1358,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -1364,14 +1374,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -1385,13 +1390,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -1402,7 +1407,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -1411,15 +1416,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true } @@ -1440,7 +1440,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -1496,12 +1496,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, @@ -1532,7 +1532,7 @@ ], "enabled_clients": [ "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt" + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -1552,7 +1552,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -1608,12 +1608,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -1629,12 +1629,12 @@ "google-oauth2" ], "enabled_clients": [ - "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ] }, { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, @@ -1665,7 +1665,7 @@ ], "enabled_clients": [ "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt" + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -1780,7 +1780,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/password_reset", + "path": "/api/v2/email-templates/verify_email_by_code", "body": "", "status": 404, "response": { @@ -1795,7 +1795,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/mfa_oob_code", + "path": "/api/v2/email-templates/change_password", "body": "", "status": 404, "response": { @@ -1810,18 +1810,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/welcome_email", + "path": "/api/v2/email-templates/mfa_oob_code", "body": "", - "status": 200, + "status": 404, "response": { - "template": "welcome_email", - "body": "\n \n

Welcome!

\n \n\n", - "from": "", - "resultUrl": "https://example.com/welcome", - "subject": "Welcome", - "syntax": "liquid", - "urlLifetimeInSeconds": 3600, - "enabled": false + "statusCode": 404, + "error": "Not Found", + "message": "The template does not exist.", + "errorCode": "inexistent_email_template" }, "rawHeaders": [], "responseIsBinary": false @@ -1829,7 +1825,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/verify_email_by_code", + "path": "/api/v2/email-templates/blocked_account", "body": "", "status": 404, "response": { @@ -1859,7 +1855,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/blocked_account", + "path": "/api/v2/email-templates/user_invitation", "body": "", "status": 404, "response": { @@ -1874,7 +1870,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/reset_email", + "path": "/api/v2/email-templates/password_reset", "body": "", "status": 404, "response": { @@ -1889,14 +1885,18 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/enrollment_email", + "path": "/api/v2/email-templates/welcome_email", "body": "", - "status": 404, + "status": 200, "response": { - "statusCode": 404, - "error": "Not Found", - "message": "The template does not exist.", - "errorCode": "inexistent_email_template" + "template": "welcome_email", + "body": "\n \n

Welcome!

\n \n\n", + "from": "", + "resultUrl": "https://example.com/welcome", + "subject": "Welcome", + "syntax": "liquid", + "urlLifetimeInSeconds": 3600, + "enabled": false }, "rawHeaders": [], "responseIsBinary": false @@ -1904,7 +1904,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/change_password", + "path": "/api/v2/email-templates/reset_email", "body": "", "status": 404, "response": { @@ -1919,7 +1919,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/user_invitation", + "path": "/api/v2/email-templates/enrollment_email", "body": "", "status": 404, "response": { @@ -1943,8 +1943,8 @@ "limit": 100, "client_grants": [ { - "id": "cgr_8IA0dLwj49O8P0R0", - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -2080,8 +2080,8 @@ ] }, { - "id": "cgr_V6CMP7ClGUswJBhB", - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -2544,22 +2544,22 @@ "response": { "roles": [ { - "id": "rol_TRRzPxsQJyJTM3ll", + "id": "rol_UwW0xVAq4Df6F6tI", "name": "Admin", "description": "Can read and write things" }, { - "id": "rol_zKNIBuPjhxjGVlNh", + "id": "rol_VucPDNsmC49E1OCe", "name": "Reader", "description": "Can only read things" }, { - "id": "rol_YIcCCf9DuxYBLew3", + "id": "rol_Hgy6WgWIaceJ4YzE", "name": "read_only", "description": "Read Only" }, { - "id": "rol_Vf5h2h0CTRtIKU5Q", + "id": "rol_IMHAwOaDJpqdiH2x", "name": "read_osnly", "description": "Readz Only" } @@ -2574,7 +2574,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_TRRzPxsQJyJTM3ll/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_UwW0xVAq4Df6F6tI/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -2589,7 +2589,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_zKNIBuPjhxjGVlNh/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_VucPDNsmC49E1OCe/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -2604,7 +2604,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_YIcCCf9DuxYBLew3/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_Hgy6WgWIaceJ4YzE/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -2619,7 +2619,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_Vf5h2h0CTRtIKU5Q/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_IMHAwOaDJpqdiH2x/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -2774,7 +2774,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup/custom-text/en", + "path": "/api/v2/prompts/login-email-verification/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2784,7 +2784,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-email-verification/custom-text/en", + "path": "/api/v2/prompts/signup/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2794,7 +2794,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup-id/custom-text/en", + "path": "/api/v2/prompts/reset-password/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2814,7 +2814,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/reset-password/custom-text/en", + "path": "/api/v2/prompts/signup-id/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2834,7 +2834,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-otp/custom-text/en", + "path": "/api/v2/prompts/mfa-push/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2844,7 +2844,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-push/custom-text/en", + "path": "/api/v2/prompts/mfa-otp/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2874,7 +2874,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-webauthn/custom-text/en", + "path": "/api/v2/prompts/mfa-sms/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2884,7 +2884,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-email/custom-text/en", + "path": "/api/v2/prompts/mfa-webauthn/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2894,7 +2894,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-sms/custom-text/en", + "path": "/api/v2/prompts/mfa-email/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2914,7 +2914,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/status/custom-text/en", + "path": "/api/v2/prompts/mfa/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2924,7 +2924,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa/custom-text/en", + "path": "/api/v2/prompts/device-flow/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2934,7 +2934,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/device-flow/custom-text/en", + "path": "/api/v2/prompts/status/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2994,7 +2994,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-id/partials", + "path": "/api/v2/prompts/login-password/partials", "body": "", "status": 200, "response": {}, @@ -3004,7 +3004,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-password/partials", + "path": "/api/v2/prompts/login/partials", "body": "", "status": 200, "response": {}, @@ -3014,7 +3014,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login/partials", + "path": "/api/v2/prompts/login-id/partials", "body": "", "status": 200, "response": {}, @@ -3024,7 +3024,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup-id/partials", + "path": "/api/v2/prompts/login-passwordless/partials", "body": "", "status": 200, "response": {}, @@ -3034,7 +3034,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-passwordless/partials", + "path": "/api/v2/prompts/signup/partials", "body": "", "status": 200, "response": {}, @@ -3044,7 +3044,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup/partials", + "path": "/api/v2/prompts/signup-password/partials", "body": "", "status": 200, "response": {}, @@ -3054,7 +3054,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup-password/partials", + "path": "/api/v2/prompts/signup-id/partials", "body": "", "status": 200, "response": {}, @@ -3070,7 +3070,7 @@ "response": { "actions": [ { - "id": "e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "name": "My Custom Action", "supported_triggers": [ { @@ -3078,34 +3078,34 @@ "version": "v2" } ], - "created_at": "2024-11-06T10:00:17.236448055Z", - "updated_at": "2024-11-06T10:00:17.244595022Z", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-07T10:04:42.845236889Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "built", "secrets": [], "current_version": { - "id": "45d98b10-ff5c-4d5f-8859-daf38b7fe20e", + "id": "13d6692b-486f-4307-8957-64e59dfaae70", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", "number": 1, - "build_time": "2024-11-06T10:00:18.365589550Z", - "created_at": "2024-11-06T10:00:18.291844970Z", - "updated_at": "2024-11-06T10:00:18.366539345Z" + "build_time": "2024-11-07T10:04:43.564446766Z", + "created_at": "2024-11-07T10:04:43.485782961Z", + "updated_at": "2024-11-07T10:04:43.567038665Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "45d98b10-ff5c-4d5f-8859-daf38b7fe20e", + "id": "13d6692b-486f-4307-8957-64e59dfaae70", "deployed": true, "number": 1, - "built_at": "2024-11-06T10:00:18.365589550Z", + "built_at": "2024-11-07T10:04:43.564446766Z", "secrets": [], "status": "built", - "created_at": "2024-11-06T10:00:18.291844970Z", - "updated_at": "2024-11-06T10:00:18.366539345Z", + "created_at": "2024-11-07T10:04:43.485782961Z", + "updated_at": "2024-11-07T10:04:43.567038665Z", "runtime": "node16", "supported_triggers": [ { @@ -3133,21 +3133,14 @@ "triggers": [ { "id": "post-login", - "version": "v3", - "status": "CURRENT", + "version": "v1", + "status": "DEPRECATED", "runtimes": [ - "node12", - "node16", - "node18-actions" + "node12" ], - "default_runtime": "node18-actions", + "default_runtime": "node12", "binding_policy": "trigger-bound", - "compatible_triggers": [ - { - "id": "post-login", - "version": "v2" - } - ] + "compatible_triggers": [] }, { "id": "post-login", @@ -3163,6 +3156,24 @@ }, { "id": "post-login", + "version": "v3", + "status": "CURRENT", + "runtimes": [ + "node12", + "node16", + "node18-actions" + ], + "default_runtime": "node18-actions", + "binding_policy": "trigger-bound", + "compatible_triggers": [ + { + "id": "post-login", + "version": "v2" + } + ] + }, + { + "id": "credentials-exchange", "version": "v1", "status": "DEPRECATED", "runtimes": [ @@ -3186,7 +3197,7 @@ "compatible_triggers": [] }, { - "id": "credentials-exchange", + "id": "pre-user-registration", "version": "v1", "status": "DEPRECATED", "runtimes": [ @@ -3198,6 +3209,19 @@ }, { "id": "pre-user-registration", + "version": "v2", + "status": "CURRENT", + "runtimes": [ + "node12", + "node16", + "node18-actions" + ], + "default_runtime": "node18-actions", + "binding_policy": "trigger-bound", + "compatible_triggers": [] + }, + { + "id": "post-user-registration", "version": "v1", "status": "DEPRECATED", "runtimes": [ @@ -3208,7 +3232,7 @@ "compatible_triggers": [] }, { - "id": "pre-user-registration", + "id": "post-user-registration", "version": "v2", "status": "CURRENT", "runtimes": [ @@ -3220,30 +3244,6 @@ "binding_policy": "trigger-bound", "compatible_triggers": [] }, - { - "id": "post-user-registration", - "version": "v2", - "status": "CURRENT", - "runtimes": [ - "node12", - "node16", - "node18-actions" - ], - "default_runtime": "node18-actions", - "binding_policy": "trigger-bound", - "compatible_triggers": [] - }, - { - "id": "post-user-registration", - "version": "v1", - "status": "DEPRECATED", - "runtimes": [ - "node12" - ], - "default_runtime": "node12", - "binding_policy": "trigger-bound", - "compatible_triggers": [] - }, { "id": "post-change-password", "version": "v1", @@ -3270,24 +3270,24 @@ }, { "id": "send-phone-message", - "version": "v2", - "status": "CURRENT", + "version": "v1", + "status": "DEPRECATED", "runtimes": [ - "node12", - "node16", - "node18-actions" + "node12" ], - "default_runtime": "node18-actions", "binding_policy": "trigger-bound", "compatible_triggers": [] }, { "id": "send-phone-message", - "version": "v1", - "status": "DEPRECATED", + "version": "v2", + "status": "CURRENT", "runtimes": [ - "node12" + "node12", + "node16", + "node18-actions" ], + "default_runtime": "node18-actions", "binding_policy": "trigger-bound", "compatible_triggers": [] }, @@ -3500,7 +3500,7 @@ "response": { "organizations": [ { - "id": "org_98JjeO1GOLPTEzMw", + "id": "org_U1GPowP5fHVuX9iS", "name": "org1", "display_name": "Organization", "branding": { @@ -3511,7 +3511,7 @@ } }, { - "id": "org_sqjTOFGOVZmKWPsI", + "id": "org_TyQVczsJUGAC5u58", "name": "org2", "display_name": "Organization2" } @@ -3602,7 +3602,7 @@ "subject": "deprecated" } ], - "client_id": "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3655,7 +3655,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3675,21 +3675,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -3709,8 +3700,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3718,25 +3708,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -3756,7 +3753,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3764,21 +3762,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -3800,7 +3800,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3853,7 +3853,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3875,9 +3875,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -3891,13 +3896,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -3908,7 +3913,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3917,10 +3922,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -3928,14 +3938,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -3949,13 +3954,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -3966,7 +3971,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -3975,15 +3980,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true }, @@ -4030,7 +4030,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw/enabled_connections", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/enabled_connections", "body": "", "status": 200, "response": [], @@ -4040,7 +4040,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw/client-grants?page=0&per_page=100&include_totals=true", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/client-grants?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { @@ -4055,7 +4055,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI/enabled_connections", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/enabled_connections", "body": "", "status": 200, "response": [], @@ -4065,7 +4065,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI/client-grants?page=0&per_page=100&include_totals=true", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/client-grants?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { @@ -4077,25 +4077,6 @@ "rawHeaders": [], "responseIsBinary": false }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/attack-protection/brute-force-protection", - "body": "", - "status": 200, - "response": { - "enabled": true, - "shields": [ - "block", - "user_notification" - ], - "mode": "count_per_identifier_and_ip", - "allowlist": [], - "max_attempts": 10 - }, - "rawHeaders": [], - "responseIsBinary": false - }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -4116,6 +4097,25 @@ "rawHeaders": [], "responseIsBinary": false }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/attack-protection/brute-force-protection", + "body": "", + "status": 200, + "response": { + "enabled": true, + "shields": [ + "block", + "user_notification" + ], + "mode": "count_per_identifier_and_ip", + "allowlist": [], + "max_attempts": 10 + }, + "rawHeaders": [], + "responseIsBinary": false + }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -4151,14 +4151,14 @@ "status": 200, "response": [ { - "id": "lst_0000000000018505", + "id": "lst_0000000000018536", "name": "Amazon EventBridge", "type": "eventbridge", "status": "active", "sink": { "awsAccountId": "123456789012", "awsRegion": "us-east-2", - "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-f468b793-c845-418d-b2fc-a2c38a604a73/auth0.logs" + "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-a295e235-1e5f-4e06-b2dd-94469edb676f/auth0.logs" }, "filters": [ { @@ -4201,7 +4201,7 @@ "isPriority": false }, { - "id": "lst_0000000000018504", + "id": "lst_0000000000018537", "name": "Suspended DD Log Stream", "type": "datadog", "status": "active", @@ -4243,23 +4243,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/rules?page=0&per_page=100&include_totals=true", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { - "total": 1, - "start": 0, "limit": 100, - "rules": [ - { - "id": "rul_leMju5CJAwJe3nkj", - "enabled": true, - "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", - "name": "my-rule", - "order": 2, - "stage": "login_success" - } - ] + "start": 0, + "total": 0, + "flows": [] }, "rawHeaders": [], "responseIsBinary": false @@ -4267,45 +4258,29 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/rules?page=0&per_page=100&include_totals=true", + "path": "/api/v2/forms?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { - "total": 1, - "start": 0, "limit": 100, - "rules": [ - { - "id": "rul_leMju5CJAwJe3nkj", - "enabled": true, - "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", - "name": "my-rule", - "order": 2, - "stage": "login_success" - } - ] + "start": 0, + "total": 0, + "forms": [] }, "rawHeaders": [], "responseIsBinary": false }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PATCH", - "path": "/api/v2/rules/rul_leMju5CJAwJe3nkj", - "body": { - "name": "my-rule", - "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", - "enabled": true, - "order": 2 - }, + "method": "GET", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", + "body": "", "status": 200, "response": { - "id": "rul_leMju5CJAwJe3nkj", - "enabled": true, - "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", - "name": "my-rule", - "order": 2, - "stage": "login_success" + "limit": 100, + "start": 0, + "total": 0, + "flows": [] }, "rawHeaders": [], "responseIsBinary": false @@ -4313,14 +4288,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/hooks?page=0&per_page=100&include_totals=true", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { - "total": 0, - "start": 0, "limit": 100, - "hooks": [] + "start": 0, + "total": 0, + "connections": [] }, "rawHeaders": [], "responseIsBinary": false @@ -4328,14 +4303,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/hooks?page=0&per_page=100&include_totals=true", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { - "total": 0, - "start": 0, "limit": 100, - "hooks": [] + "start": 0, + "total": 0, + "connections": [] }, "rawHeaders": [], "responseIsBinary": false @@ -4343,18 +4318,118 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/clients?page=0&per_page=100&include_totals=true&is_global=true", + "path": "/api/v2/rules?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { "total": 1, "start": 0, "limit": 100, - "clients": [ + "rules": [ { - "tenant": "auth0-deploy-cli-e2e", - "global": true, - "callbacks": [], + "id": "rul_ANXcw440qOoeEht3", + "enabled": true, + "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", + "name": "my-rule", + "order": 2, + "stage": "login_success" + } + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/rules?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "total": 1, + "start": 0, + "limit": 100, + "rules": [ + { + "id": "rul_ANXcw440qOoeEht3", + "enabled": true, + "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", + "name": "my-rule", + "order": 2, + "stage": "login_success" + } + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/rules/rul_ANXcw440qOoeEht3", + "body": { + "name": "my-rule", + "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", + "enabled": true, + "order": 2 + }, + "status": 200, + "response": { + "id": "rul_ANXcw440qOoeEht3", + "enabled": true, + "script": "function (user, context, callback) {\n callback(null, user, context);\n}\n", + "name": "my-rule", + "order": 2, + "stage": "login_success" + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/hooks?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "total": 0, + "start": 0, + "limit": 100, + "hooks": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/hooks?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "total": 0, + "start": 0, + "limit": 100, + "hooks": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/clients?page=0&per_page=100&include_totals=true&is_global=true", + "body": "", + "status": 200, + "response": { + "total": 1, + "start": 0, + "limit": 100, + "clients": [ + { + "tenant": "auth0-deploy-cli-e2e", + "global": true, + "callbacks": [], "is_first_party": true, "name": "All Applications", "refresh_token": { @@ -5389,7 +5464,7 @@ "subject": "deprecated" } ], - "client_id": "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -5442,7 +5517,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -5462,21 +5537,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -5496,8 +5562,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -5505,25 +5570,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -5543,7 +5615,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -5551,21 +5624,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -5587,7 +5662,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -5640,7 +5715,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -5662,9 +5737,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -5678,13 +5758,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -5695,7 +5775,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -5704,10 +5784,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -5715,14 +5800,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -5736,13 +5816,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -5753,7 +5833,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -5762,15 +5842,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true } @@ -5782,7 +5857,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "path": "/api/v2/clients/43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "body": { "name": "API Explorer Application", "allowed_clients": [], @@ -5861,7 +5936,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -5883,10 +5958,16 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "path": "/api/v2/clients/ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "body": { - "name": "Default App", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "allowed_origins": [], + "app_type": "regular_web", "callbacks": [], + "client_aliases": [], + "client_metadata": {}, "cross_origin_auth": false, "cross_origin_authentication": false, "custom_login_page_on": true, @@ -5902,35 +5983,56 @@ "alg": "RS256", "lifetime_in_seconds": 36000 }, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, "rotation_type": "non-rotating" }, - "sso_disabled": false + "sso_disabled": false, + "token_endpoint_auth_method": "client_secret_post", + "web_origins": [] }, "status": 200, "response": { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Default App", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, "rotation_type": "non-rotating" }, "sso_disabled": false, @@ -5942,7 +6044,8 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -5950,12 +6053,16 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], + "token_endpoint_auth_method": "client_secret_post", + "app_type": "regular_web", "grant_types": [ "authorization_code", "implicit", "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, "rawHeaders": [], @@ -5964,16 +6071,10 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "path": "/api/v2/clients/SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "body": { - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "allowed_origins": [], - "app_type": "regular_web", + "name": "Default App", "callbacks": [], - "client_aliases": [], - "client_metadata": {}, "cross_origin_auth": false, "cross_origin_authentication": false, "custom_login_page_on": true, @@ -5989,56 +6090,35 @@ "alg": "RS256", "lifetime_in_seconds": 36000 }, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, "rotation_type": "non-rotating" }, - "sso_disabled": false, - "token_endpoint_auth_method": "client_secret_post", - "web_origins": [] + "sso_disabled": false }, "status": 200, "response": { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], + "name": "Default App", "callbacks": [], - "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, "rotation_type": "non-rotating" }, "sso_disabled": false, @@ -6050,8 +6130,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6059,16 +6138,12 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", "grant_types": [ "authorization_code", "implicit", "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, "rawHeaders": [], @@ -6077,7 +6152,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "path": "/api/v2/clients/XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "body": { "name": "Quickstarts API (Test Application)", "app_type": "non_interactive", @@ -6139,7 +6214,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6160,7 +6235,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "path": "/api/v2/clients/PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "body": { "name": "Terraform Provider", "app_type": "non_interactive", @@ -6216,7 +6291,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6237,7 +6312,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "path": "/api/v2/clients/JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "body": { "name": "Test SPA", "allowed_clients": [], @@ -6331,7 +6406,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6358,11 +6433,10 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "path": "/api/v2/clients/8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "body": { - "name": "auth0-deploy-cli-extension", + "name": "The Default App", "allowed_clients": [], - "app_type": "non_interactive", "callbacks": [], "client_aliases": [], "client_metadata": {}, @@ -6370,6 +6444,9 @@ "cross_origin_authentication": false, "custom_login_page_on": true, "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], "is_first_party": true, @@ -6386,16 +6463,17 @@ "enabled": false } }, - "oidc_conformant": true, + "oidc_conformant": false, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, "rotation_type": "non-rotating" }, + "sso": false, "sso_disabled": false, "token_endpoint_auth_method": "client_secret_post" }, @@ -6404,7 +6482,7 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "The Default App", "allowed_clients": [], "callbacks": [], "client_metadata": {}, @@ -6418,16 +6496,17 @@ "enabled": false } }, - "oidc_conformant": true, + "oidc_conformant": false, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, "rotation_type": "non-rotating" }, + "sso": false, "sso_disabled": false, "cross_origin_authentication": false, "signing_keys": [ @@ -6437,7 +6516,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6447,8 +6526,10 @@ }, "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], "custom_login_page_on": true @@ -6459,10 +6540,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/clients/CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "path": "/api/v2/clients/tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "body": { - "name": "The Default App", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], + "app_type": "non_interactive", "callbacks": [], "client_aliases": [], "client_metadata": {}, @@ -6470,9 +6552,6 @@ "cross_origin_authentication": false, "custom_login_page_on": true, "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], "is_first_party": true, @@ -6489,17 +6568,16 @@ "enabled": false } }, - "oidc_conformant": false, + "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, "rotation_type": "non-rotating" }, - "sso": false, "sso_disabled": false, "token_endpoint_auth_method": "client_secret_post" }, @@ -6508,7 +6586,7 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "The Default App", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], "callbacks": [], "client_metadata": {}, @@ -6522,17 +6600,16 @@ "enabled": false } }, - "oidc_conformant": false, + "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, "rotation_type": "non-rotating" }, - "sso": false, "sso_disabled": false, "cross_origin_authentication": false, "signing_keys": [ @@ -6542,7 +6619,7 @@ "subject": "/CN=auth0-deploy-cli-e2e.us.auth0.com" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -6552,10 +6629,8 @@ }, "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], "custom_login_page_on": true @@ -6603,7 +6678,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/otp", + "path": "/api/v2/guardian/factors/email", "body": { "enabled": false }, @@ -6631,7 +6706,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/email", + "path": "/api/v2/guardian/factors/otp", "body": { "enabled": false }, @@ -6645,7 +6720,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/sms", + "path": "/api/v2/guardian/factors/push-notification", "body": { "enabled": false }, @@ -6659,7 +6734,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/webauthn-roaming", + "path": "/api/v2/guardian/factors/sms", "body": { "enabled": false }, @@ -6701,7 +6776,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PUT", - "path": "/api/v2/guardian/factors/push-notification", + "path": "/api/v2/guardian/factors/webauthn-roaming", "body": { "enabled": false }, @@ -6826,34 +6901,6 @@ "rawHeaders": [], "responseIsBinary": false }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PATCH", - "path": "/api/v2/attack-protection/brute-force-protection", - "body": { - "enabled": true, - "shields": [ - "block", - "user_notification" - ], - "mode": "count_per_identifier_and_ip", - "allowlist": [], - "max_attempts": 10 - }, - "status": 200, - "response": { - "enabled": true, - "shields": [ - "block", - "user_notification" - ], - "mode": "count_per_identifier_and_ip", - "allowlist": [], - "max_attempts": 10 - }, - "rawHeaders": [], - "responseIsBinary": false - }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", @@ -6884,6 +6931,34 @@ "rawHeaders": [], "responseIsBinary": false }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/attack-protection/brute-force-protection", + "body": { + "enabled": true, + "shields": [ + "block", + "user_notification" + ], + "mode": "count_per_identifier_and_ip", + "allowlist": [], + "max_attempts": 10 + }, + "status": 200, + "response": { + "enabled": true, + "shields": [ + "block", + "user_notification" + ], + "mode": "count_per_identifier_and_ip", + "allowlist": [], + "max_attempts": 10 + }, + "rawHeaders": [], + "responseIsBinary": false + }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -6892,14 +6967,14 @@ "status": 200, "response": [ { - "id": "lst_0000000000018505", + "id": "lst_0000000000018536", "name": "Amazon EventBridge", "type": "eventbridge", "status": "active", "sink": { "awsAccountId": "123456789012", "awsRegion": "us-east-2", - "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-f468b793-c845-418d-b2fc-a2c38a604a73/auth0.logs" + "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-a295e235-1e5f-4e06-b2dd-94469edb676f/auth0.logs" }, "filters": [ { @@ -6942,7 +7017,7 @@ "isPriority": false }, { - "id": "lst_0000000000018504", + "id": "lst_0000000000018537", "name": "Suspended DD Log Stream", "type": "datadog", "status": "active", @@ -6959,34 +7034,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/log-streams/lst_0000000000018504", - "body": { - "name": "Suspended DD Log Stream", - "isPriority": false, - "sink": { - "datadogRegion": "us" - }, - "status": "active" - }, - "status": 200, - "response": { - "id": "lst_0000000000018504", - "name": "Suspended DD Log Stream", - "type": "datadog", - "status": "active", - "sink": { - "datadogApiKey": "some-sensitive-api-key", - "datadogRegion": "us" - }, - "isPriority": false - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PATCH", - "path": "/api/v2/log-streams/lst_0000000000018505", + "path": "/api/v2/log-streams/lst_0000000000018536", "body": { "name": "Amazon EventBridge", "filters": [ @@ -7032,14 +7080,14 @@ }, "status": 200, "response": { - "id": "lst_0000000000018505", + "id": "lst_0000000000018536", "name": "Amazon EventBridge", "type": "eventbridge", "status": "active", "sink": { "awsAccountId": "123456789012", "awsRegion": "us-east-2", - "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-f468b793-c845-418d-b2fc-a2c38a604a73/auth0.logs" + "awsPartnerEventSource": "aws.partner/auth0.com/auth0-deploy-cli-e2e-a295e235-1e5f-4e06-b2dd-94469edb676f/auth0.logs" }, "filters": [ { @@ -7084,6 +7132,33 @@ "rawHeaders": [], "responseIsBinary": false }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/log-streams/lst_0000000000018537", + "body": { + "name": "Suspended DD Log Stream", + "isPriority": false, + "sink": { + "datadogRegion": "us" + }, + "status": "active" + }, + "status": 200, + "response": { + "id": "lst_0000000000018537", + "name": "Suspended DD Log Stream", + "type": "datadog", + "status": "active", + "sink": { + "datadogApiKey": "some-sensitive-api-key", + "datadogRegion": "us" + }, + "isPriority": false + }, + "rawHeaders": [], + "responseIsBinary": false + }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -7097,36 +7172,141 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/clients?page=0&per_page=100&include_totals=true", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { - "total": 10, + "limit": 100, "start": 0, + "total": 0, + "flows": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { "limit": 100, - "clients": [ - { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "Deploy CLI", - "is_first_party": true, - "oidc_conformant": true, - "sso_disabled": false, - "cross_origin_auth": false, - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" - }, - "cross_origin_authentication": true, - "signing_keys": [ - { - "cert": "[REDACTED]", + "start": 0, + "total": 0, + "flows": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/forms?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "forms": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "connections": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "flows": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "connections": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "connections": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/clients?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "total": 10, + "start": 0, + "limit": 100, + "clients": [ + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Deploy CLI", + "is_first_party": true, + "oidc_conformant": true, + "sso_disabled": false, + "cross_origin_auth": false, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "cross_origin_authentication": true, + "signing_keys": [ + { + "cert": "[REDACTED]", "pkcs7": "[REDACTED]", "subject": "deprecated" } @@ -7173,7 +7353,7 @@ "subject": "deprecated" } ], - "client_id": "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7226,7 +7406,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7246,21 +7426,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -7280,8 +7451,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7289,25 +7459,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -7327,7 +7504,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7335,21 +7513,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -7371,7 +7551,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7424,7 +7604,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7446,9 +7626,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -7462,13 +7647,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -7479,7 +7664,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7488,10 +7673,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -7499,14 +7689,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -7520,13 +7705,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -7537,7 +7722,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -7546,15 +7731,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true }, @@ -7610,7 +7790,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -7666,12 +7846,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, @@ -7702,7 +7882,7 @@ ], "enabled_clients": [ "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt" + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -7722,7 +7902,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -7778,12 +7958,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, @@ -7814,7 +7994,7 @@ ], "enabled_clients": [ "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt" + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -7825,42 +8005,23 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/connections/con_isbl83K0EyW745Cg", + "path": "/api/v2/connections/con_7tTU8dpv9keeCE5Q", "body": "", "status": 200, "response": { - "id": "con_isbl83K0EyW745Cg", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, "return_enroll_settings": true }, - "import_mode": false, - "customScripts": { - "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "create": "function create(user, callback) {\n // This script should create a user entry in your existing database. It will\n // be executed when a user attempts to sign up, or when a user is created\n // through the Auth0 dashboard or API.\n // When this script has finished executing, the Login script will be\n // executed immediately afterwards, to verify that the user was created\n // successfully.\n //\n // The user object will always contain the following properties:\n // * email: the user's email\n // * password: the password entered by the user, in plain text\n // * tenant: the name of this Auth0 account\n // * client_id: the client ID of the application where the user signed up, or\n // API key if created through the API or Auth0 dashboard\n // * connection: the name of this database connection\n //\n // There are three ways this script can finish:\n // 1. A user was successfully created\n // callback(null);\n // 2. This user already exists in your database\n // callback(new ValidationError(\"user_exists\", \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Create script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "delete": "function remove(id, callback) {\n // This script remove a user from your existing database.\n // It is executed whenever a user is deleted from the API or Auth0 dashboard.\n //\n // There are two ways that this script can finish:\n // 1. The user was removed successfully:\n // callback(null);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Delete script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "get_user": "function getByEmail(email, callback) {\n // This script should retrieve a user profile from your existing database,\n // without authenticating the user.\n // It is used to check if a user exists before executing flows that do not\n // require authentication (signup and password reset).\n //\n // There are three ways this script can finish:\n // 1. A user was successfully found. The profile should be in the following\n // format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema.\n // callback(null, profile);\n // 2. A user was not found\n // callback(null);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Get User script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", - "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" - }, - "disable_signup": false, - "passwordPolicy": "low", + "passwordPolicy": "good", "passkey_options": { "challenge_ui": "both", "local_enrollment_enabled": true, "progressive_enrollment_enabled": true }, - "password_history": { - "size": 5, - "enable": false - }, "strategy_version": 2, - "requires_username": true, - "password_dictionary": { - "enable": true, - "dictionary": [] - }, "authentication_methods": { "passkey": { "enabled": false @@ -7869,24 +8030,17 @@ "enabled": true } }, - "brute_force_protection": true, - "password_no_personal_info": { - "enable": true - }, - "password_complexity_options": { - "min_length": 8 - }, - "enabledDatabaseCustomization": true + "brute_force_protection": true }, "strategy": "auth0", - "name": "boo-baz-db-connection-test", + "name": "Username-Password-Authentication", "is_domain_connection": false, "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ], "realms": [ - "boo-baz-db-connection-test" + "Username-Password-Authentication" ] }, "rawHeaders": [], @@ -7895,23 +8049,42 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/connections/con_WFP0F318RCvc1yPr", + "path": "/api/v2/connections/con_Jd86qQK1FtuUb7xn", "body": "", "status": 200, "response": { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, "return_enroll_settings": true }, - "passwordPolicy": "good", + "import_mode": false, + "customScripts": { + "login": "function login(email, password, callback) {\n // This script should authenticate a user against the credentials stored in\n // your database.\n // It is executed when a user attempts to log in or immediately after signing\n // up (as a verification that the user was successfully signed up).\n //\n // Everything returned by this script will be set as part of the user profile\n // and will be visible by any of the tenant admins. Avoid adding attributes\n // with values such as passwords, keys, secrets, etc.\n //\n // The `password` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database. For example:\n //\n // var bcrypt = require('bcrypt@0.8.5');\n // bcrypt.compare(password, dbPasswordHash, function(err, res)) { ... }\n //\n // There are three ways this script can finish:\n // 1. The user's credentials are valid. The returned user profile should be in\n // the following format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema\n // var profile = {\n // user_id: ..., // user_id is mandatory\n // email: ...,\n // [...]\n // };\n // callback(null, profile);\n // 2. The user's credentials are invalid\n // callback(new WrongUsernameOrPasswordError(email, \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n //\n // A list of Node.js modules which can be referenced is available here:\n //\n // https://tehsis.github.io/webtaskio-canirequire/\n console.log('AYYYYYE');\n\n const msg =\n 'Please implement the Login script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "create": "function create(user, callback) {\n // This script should create a user entry in your existing database. It will\n // be executed when a user attempts to sign up, or when a user is created\n // through the Auth0 dashboard or API.\n // When this script has finished executing, the Login script will be\n // executed immediately afterwards, to verify that the user was created\n // successfully.\n //\n // The user object will always contain the following properties:\n // * email: the user's email\n // * password: the password entered by the user, in plain text\n // * tenant: the name of this Auth0 account\n // * client_id: the client ID of the application where the user signed up, or\n // API key if created through the API or Auth0 dashboard\n // * connection: the name of this database connection\n //\n // There are three ways this script can finish:\n // 1. A user was successfully created\n // callback(null);\n // 2. This user already exists in your database\n // callback(new ValidationError(\"user_exists\", \"my error message\"));\n // 3. Something went wrong while trying to reach your database\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Create script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "delete": "function remove(id, callback) {\n // This script remove a user from your existing database.\n // It is executed whenever a user is deleted from the API or Auth0 dashboard.\n //\n // There are two ways that this script can finish:\n // 1. The user was removed successfully:\n // callback(null);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Delete script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "verify": "function verify(email, callback) {\n // This script should mark the current user's email address as verified in\n // your database.\n // It is executed whenever a user clicks the verification link sent by email.\n // These emails can be customized at https://manage.auth0.com/#/emails.\n // It is safe to assume that the user's email already exists in your database,\n // because verification emails, if enabled, are sent immediately after a\n // successful signup.\n //\n // There are two ways that this script can finish:\n // 1. The user's email was verified successfully\n // callback(null, true);\n // 2. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the verification link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Verify script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "get_user": "function getByEmail(email, callback) {\n // This script should retrieve a user profile from your existing database,\n // without authenticating the user.\n // It is used to check if a user exists before executing flows that do not\n // require authentication (signup and password reset).\n //\n // There are three ways this script can finish:\n // 1. A user was successfully found. The profile should be in the following\n // format: https://auth0.com/docs/users/normalized/auth0/normalized-user-profile-schema.\n // callback(null, profile);\n // 2. A user was not found\n // callback(null);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n\n const msg =\n 'Please implement the Get User script for this database connection ' +\n 'at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n", + "change_password": "function changePassword(email, newPassword, callback) {\n // This script should change the password stored for the current user in your\n // database. It is executed when the user clicks on the confirmation link\n // after a reset password request.\n // The content and behavior of password confirmation emails can be customized\n // here: https://manage.auth0.com/#/emails\n // The `newPassword` parameter of this function is in plain text. It must be\n // hashed/salted to match whatever is stored in your database.\n //\n // There are three ways that this script can finish:\n // 1. The user's password was updated successfully:\n // callback(null, true);\n // 2. The user's password was not updated:\n // callback(null, false);\n // 3. Something went wrong while trying to reach your database:\n // callback(new Error(\"my error message\"));\n //\n // If an error is returned, it will be passed to the query string of the page\n // where the user is being redirected to after clicking the confirmation link.\n // For example, returning `callback(new Error(\"error\"))` and redirecting to\n // https://example.com would redirect to the following URL:\n // https://example.com?email=alice%40example.com&message=error&success=false\n\n const msg =\n 'Please implement the Change Password script for this database ' +\n 'connection at https://manage.auth0.com/#/connections/database';\n return callback(new Error(msg));\n}\n" + }, + "disable_signup": false, + "passwordPolicy": "low", "passkey_options": { "challenge_ui": "both", "local_enrollment_enabled": true, "progressive_enrollment_enabled": true }, + "password_history": { + "size": 5, + "enable": false + }, "strategy_version": 2, + "requires_username": true, + "password_dictionary": { + "enable": true, + "dictionary": [] + }, "authentication_methods": { "passkey": { "enabled": false @@ -7920,17 +8093,24 @@ "enabled": true } }, - "brute_force_protection": true + "brute_force_protection": true, + "password_no_personal_info": { + "enable": true + }, + "password_complexity_options": { + "min_length": 8 + }, + "enabledDatabaseCustomization": true }, "strategy": "auth0", - "name": "Username-Password-Authentication", + "name": "boo-baz-db-connection-test", "is_domain_connection": false, "enabled_clients": [ - "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ], "realms": [ - "Username-Password-Authentication" + "boo-baz-db-connection-test" ] }, "rawHeaders": [], @@ -7939,11 +8119,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/connections/con_isbl83K0EyW745Cg", + "path": "/api/v2/connections/con_Jd86qQK1FtuUb7xn", "body": { "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ], "is_domain_connection": false, "options": { @@ -8000,7 +8180,7 @@ }, "status": 200, "response": { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -8053,8 +8233,8 @@ "name": "boo-baz-db-connection-test", "is_domain_connection": false, "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ], "realms": [ "boo-baz-db-connection-test" @@ -8066,11 +8246,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/connections/con_WFP0F318RCvc1yPr", + "path": "/api/v2/connections/con_7tTU8dpv9keeCE5Q", "body": { "enabled_clients": [ "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt" + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ], "is_domain_connection": false, "options": { @@ -8101,7 +8281,7 @@ }, "status": 200, "response": { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, @@ -8129,7 +8309,7 @@ "is_domain_connection": false, "enabled_clients": [ "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt" + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ], "realms": [ "Username-Password-Authentication" @@ -8217,7 +8397,7 @@ "subject": "deprecated" } ], - "client_id": "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -8270,7 +8450,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -8290,21 +8470,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -8324,8 +8495,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -8333,25 +8503,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -8371,7 +8548,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -8379,21 +8557,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -8415,7 +8595,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -8468,7 +8648,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -8490,9 +8670,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -8506,13 +8691,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -8523,7 +8708,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -8532,10 +8717,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -8543,14 +8733,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -8564,13 +8749,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -8581,7 +8766,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -8590,15 +8775,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true }, @@ -8654,7 +8834,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -8710,12 +8890,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -8731,12 +8911,12 @@ "google-oauth2" ], "enabled_clients": [ - "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ] }, { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, @@ -8767,7 +8947,7 @@ ], "enabled_clients": [ "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt" + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -8787,7 +8967,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -8843,12 +9023,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -8864,12 +9044,12 @@ "google-oauth2" ], "enabled_clients": [ - "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ] }, { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, @@ -8900,7 +9080,7 @@ ], "enabled_clients": [ "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt" + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -8911,11 +9091,11 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/connections/con_A4te7zSEQoMDxaQb", + "path": "/api/v2/connections/con_SSAQuf1eAS4HALWp", "body": { "enabled_clients": [ - "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ], "is_domain_connection": false, "options": { @@ -8929,7 +9109,7 @@ }, "status": 200, "response": { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -8942,8 +9122,8 @@ "name": "google-oauth2", "is_domain_connection": false, "enabled_clients": [ - "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ], "realms": [ "google-oauth2" @@ -9085,7 +9265,7 @@ "subject": "deprecated" } ], - "client_id": "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9138,7 +9318,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9158,21 +9338,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -9192,8 +9363,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9201,25 +9371,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -9239,7 +9416,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9247,21 +9425,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -9283,7 +9463,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9336,7 +9516,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9358,9 +9538,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -9374,13 +9559,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -9391,7 +9576,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9400,10 +9585,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -9411,14 +9601,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -9432,13 +9617,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -9449,7 +9634,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -9458,15 +9643,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true }, @@ -9522,8 +9702,8 @@ "limit": 100, "client_grants": [ { - "id": "cgr_8IA0dLwj49O8P0R0", - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -9659,8 +9839,8 @@ ] }, { - "id": "cgr_V6CMP7ClGUswJBhB", - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -9999,7 +10179,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/client-grants/cgr_8IA0dLwj49O8P0R0", + "path": "/api/v2/client-grants/cgr_XRy0Lk9J8dl7iIt0", "body": { "scope": [ "read:client_grants", @@ -10136,8 +10316,8 @@ }, "status": 200, "response": { - "id": "cgr_8IA0dLwj49O8P0R0", - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -10278,7 +10458,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/client-grants/cgr_V6CMP7ClGUswJBhB", + "path": "/api/v2/client-grants/cgr_KE5stboZltPop0tc", "body": { "scope": [ "read:client_grants", @@ -10415,8 +10595,8 @@ }, "status": 200, "response": { - "id": "cgr_V6CMP7ClGUswJBhB", - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", "scope": [ "read:client_grants", @@ -10563,22 +10743,22 @@ "response": { "roles": [ { - "id": "rol_TRRzPxsQJyJTM3ll", + "id": "rol_UwW0xVAq4Df6F6tI", "name": "Admin", "description": "Can read and write things" }, { - "id": "rol_zKNIBuPjhxjGVlNh", + "id": "rol_VucPDNsmC49E1OCe", "name": "Reader", "description": "Can only read things" }, { - "id": "rol_YIcCCf9DuxYBLew3", + "id": "rol_Hgy6WgWIaceJ4YzE", "name": "read_only", "description": "Read Only" }, { - "id": "rol_Vf5h2h0CTRtIKU5Q", + "id": "rol_IMHAwOaDJpqdiH2x", "name": "read_osnly", "description": "Readz Only" } @@ -10593,7 +10773,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_TRRzPxsQJyJTM3ll/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_UwW0xVAq4Df6F6tI/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -10608,7 +10788,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_zKNIBuPjhxjGVlNh/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_VucPDNsmC49E1OCe/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -10623,7 +10803,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_YIcCCf9DuxYBLew3/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_Hgy6WgWIaceJ4YzE/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -10638,7 +10818,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/roles/rol_Vf5h2h0CTRtIKU5Q/permissions?per_page=100&page=0&include_totals=true", + "path": "/api/v2/roles/rol_IMHAwOaDJpqdiH2x/permissions?per_page=100&page=0&include_totals=true", "body": "", "status": 200, "response": { @@ -10653,16 +10833,16 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/roles/rol_TRRzPxsQJyJTM3ll", + "path": "/api/v2/roles/rol_VucPDNsmC49E1OCe", "body": { - "name": "Admin", - "description": "Can read and write things" + "name": "Reader", + "description": "Can only read things" }, "status": 200, "response": { - "id": "rol_TRRzPxsQJyJTM3ll", - "name": "Admin", - "description": "Can read and write things" + "id": "rol_VucPDNsmC49E1OCe", + "name": "Reader", + "description": "Can only read things" }, "rawHeaders": [], "responseIsBinary": false @@ -10670,16 +10850,16 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/roles/rol_zKNIBuPjhxjGVlNh", + "path": "/api/v2/roles/rol_UwW0xVAq4Df6F6tI", "body": { - "name": "Reader", - "description": "Can only read things" + "name": "Admin", + "description": "Can read and write things" }, "status": 200, "response": { - "id": "rol_zKNIBuPjhxjGVlNh", - "name": "Reader", - "description": "Can only read things" + "id": "rol_UwW0xVAq4Df6F6tI", + "name": "Admin", + "description": "Can read and write things" }, "rawHeaders": [], "responseIsBinary": false @@ -10687,14 +10867,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/roles/rol_YIcCCf9DuxYBLew3", + "path": "/api/v2/roles/rol_Hgy6WgWIaceJ4YzE", "body": { "name": "read_only", "description": "Read Only" }, "status": 200, "response": { - "id": "rol_YIcCCf9DuxYBLew3", + "id": "rol_Hgy6WgWIaceJ4YzE", "name": "read_only", "description": "Read Only" }, @@ -10704,14 +10884,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/roles/rol_Vf5h2h0CTRtIKU5Q", + "path": "/api/v2/roles/rol_IMHAwOaDJpqdiH2x", "body": { "name": "read_osnly", "description": "Readz Only" }, "status": 200, "response": { - "id": "rol_Vf5h2h0CTRtIKU5Q", + "id": "rol_IMHAwOaDJpqdiH2x", "name": "read_osnly", "description": "Readz Only" }, @@ -10727,7 +10907,7 @@ "response": { "actions": [ { - "id": "e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "name": "My Custom Action", "supported_triggers": [ { @@ -10735,34 +10915,34 @@ "version": "v2" } ], - "created_at": "2024-11-06T10:00:17.236448055Z", - "updated_at": "2024-11-06T10:00:17.244595022Z", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-07T10:04:42.845236889Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "built", "secrets": [], "current_version": { - "id": "45d98b10-ff5c-4d5f-8859-daf38b7fe20e", + "id": "13d6692b-486f-4307-8957-64e59dfaae70", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", "number": 1, - "build_time": "2024-11-06T10:00:18.365589550Z", - "created_at": "2024-11-06T10:00:18.291844970Z", - "updated_at": "2024-11-06T10:00:18.366539345Z" + "build_time": "2024-11-07T10:04:43.564446766Z", + "created_at": "2024-11-07T10:04:43.485782961Z", + "updated_at": "2024-11-07T10:04:43.567038665Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "45d98b10-ff5c-4d5f-8859-daf38b7fe20e", + "id": "13d6692b-486f-4307-8957-64e59dfaae70", "deployed": true, "number": 1, - "built_at": "2024-11-06T10:00:18.365589550Z", + "built_at": "2024-11-07T10:04:43.564446766Z", "secrets": [], "status": "built", - "created_at": "2024-11-06T10:00:18.291844970Z", - "updated_at": "2024-11-06T10:00:18.366539345Z", + "created_at": "2024-11-07T10:04:43.485782961Z", + "updated_at": "2024-11-07T10:04:43.567038665Z", "runtime": "node16", "supported_triggers": [ { @@ -10783,7 +10963,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/actions/actions/e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "path": "/api/v2/actions/actions/f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "body": { "name": "My Custom Action", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", @@ -10799,7 +10979,7 @@ }, "status": 200, "response": { - "id": "e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "name": "My Custom Action", "supported_triggers": [ { @@ -10807,34 +10987,34 @@ "version": "v2" } ], - "created_at": "2024-11-06T10:00:17.236448055Z", - "updated_at": "2024-11-07T10:00:22.140289063Z", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:09:31.421139824Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "pending", "secrets": [], "current_version": { - "id": "45d98b10-ff5c-4d5f-8859-daf38b7fe20e", + "id": "13d6692b-486f-4307-8957-64e59dfaae70", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", "number": 1, - "build_time": "2024-11-06T10:00:18.365589550Z", - "created_at": "2024-11-06T10:00:18.291844970Z", - "updated_at": "2024-11-06T10:00:18.366539345Z" + "build_time": "2024-11-07T10:04:43.564446766Z", + "created_at": "2024-11-07T10:04:43.485782961Z", + "updated_at": "2024-11-07T10:04:43.567038665Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "45d98b10-ff5c-4d5f-8859-daf38b7fe20e", + "id": "13d6692b-486f-4307-8957-64e59dfaae70", "deployed": true, "number": 1, - "built_at": "2024-11-06T10:00:18.365589550Z", + "built_at": "2024-11-07T10:04:43.564446766Z", "secrets": [], "status": "built", - "created_at": "2024-11-06T10:00:18.291844970Z", - "updated_at": "2024-11-06T10:00:18.366539345Z", + "created_at": "2024-11-07T10:04:43.485782961Z", + "updated_at": "2024-11-07T10:04:43.567038665Z", "runtime": "node16", "supported_triggers": [ { @@ -10857,7 +11037,7 @@ "response": { "actions": [ { - "id": "e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "name": "My Custom Action", "supported_triggers": [ { @@ -10865,34 +11045,34 @@ "version": "v2" } ], - "created_at": "2024-11-06T10:00:17.236448055Z", - "updated_at": "2024-11-07T10:00:22.140289063Z", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:09:31.421139824Z", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], "runtime": "node16", "status": "built", "secrets": [], "current_version": { - "id": "45d98b10-ff5c-4d5f-8859-daf38b7fe20e", + "id": "13d6692b-486f-4307-8957-64e59dfaae70", "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "runtime": "node16", "status": "BUILT", "number": 1, - "build_time": "2024-11-06T10:00:18.365589550Z", - "created_at": "2024-11-06T10:00:18.291844970Z", - "updated_at": "2024-11-06T10:00:18.366539345Z" + "build_time": "2024-11-07T10:04:43.564446766Z", + "created_at": "2024-11-07T10:04:43.485782961Z", + "updated_at": "2024-11-07T10:04:43.567038665Z" }, "deployed_version": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "45d98b10-ff5c-4d5f-8859-daf38b7fe20e", + "id": "13d6692b-486f-4307-8957-64e59dfaae70", "deployed": true, "number": 1, - "built_at": "2024-11-06T10:00:18.365589550Z", + "built_at": "2024-11-07T10:04:43.564446766Z", "secrets": [], "status": "built", - "created_at": "2024-11-06T10:00:18.291844970Z", - "updated_at": "2024-11-06T10:00:18.366539345Z", + "created_at": "2024-11-07T10:04:43.485782961Z", + "updated_at": "2024-11-07T10:04:43.567038665Z", "runtime": "node16", "supported_triggers": [ { @@ -10913,19 +11093,19 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "POST", - "path": "/api/v2/actions/actions/e8d56dc9-de98-4c0c-8b8a-456807f63fb0/deploy", + "path": "/api/v2/actions/actions/f921cc75-2b3b-4dd8-b1dd-d3c12f61df11/deploy", "body": "", "status": 200, "response": { "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "521210bf-7642-49f4-8b8f-0dd1d6176633", + "id": "2e4b6307-3db8-4eb8-93ce-7b06f405ed64", "deployed": false, "number": 2, "secrets": [], "status": "built", - "created_at": "2024-11-07T10:00:22.876554394Z", - "updated_at": "2024-11-07T10:00:22.876554394Z", + "created_at": "2024-11-15T11:09:32.245664587Z", + "updated_at": "2024-11-15T11:09:32.245664587Z", "runtime": "node16", "supported_triggers": [ { @@ -10934,7 +11114,7 @@ } ], "action": { - "id": "e8d56dc9-de98-4c0c-8b8a-456807f63fb0", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", "name": "My Custom Action", "supported_triggers": [ { @@ -10942,8 +11122,8 @@ "version": "v2" } ], - "created_at": "2024-11-06T10:00:17.236448055Z", - "updated_at": "2024-11-07T10:00:22.133322997Z", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-15T11:09:31.415125938Z", "all_changes_deployed": false } }, @@ -10972,38 +11152,6 @@ "rawHeaders": [], "responseIsBinary": false }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/organizations?page=0&per_page=100&include_totals=true", - "body": "", - "status": 200, - "response": { - "organizations": [ - { - "id": "org_98JjeO1GOLPTEzMw", - "name": "org1", - "display_name": "Organization", - "branding": { - "colors": { - "page_background": "#fff5f5", - "primary": "#57ddff" - } - } - }, - { - "id": "org_sqjTOFGOVZmKWPsI", - "name": "org2", - "display_name": "Organization2" - } - ], - "start": 0, - "limit": 100, - "total": 2 - }, - "rawHeaders": [], - "responseIsBinary": false - }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", @@ -11083,7 +11231,7 @@ "subject": "deprecated" } ], - "client_id": "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -11136,7 +11284,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -11156,21 +11304,12 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Node App", - "allowed_clients": [], - "allowed_logout_urls": [], - "callbacks": [], - "client_metadata": {}, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, "cross_origin_auth": false, "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -11190,8 +11329,7 @@ "subject": "deprecated" } ], - "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -11199,25 +11337,32 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, - "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "regular_web", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token", "client_credentials" ], - "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Terraform Provider", + "name": "Node App", + "allowed_clients": [], + "allowed_logout_urls": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, "oidc_conformant": true, "refresh_token": { "expiration_type": "non-expiring", @@ -11237,7 +11382,8 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "allowed_origins": [], + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -11245,21 +11391,23 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "app_type": "regular_web", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], + "web_origins": [], "custom_login_page_on": true }, { "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "Terraform Provider", "cross_origin_auth": false, "is_first_party": true, "oidc_conformant": true, @@ -11281,7 +11429,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -11334,7 +11482,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -11356,9 +11504,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "auth0-deploy-cli-extension", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -11372,13 +11525,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, - "rotation_type": "non-rotating" + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -11389,7 +11542,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -11398,10 +11551,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ - "client_credentials" + "authorization_code", + "implicit", + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -11409,14 +11567,9 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", + "name": "auth0-deploy-cli-extension", "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], + "callbacks": [], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -11430,13 +11583,13 @@ }, "oidc_conformant": true, "refresh_token": { - "expiration_type": "expiring", + "expiration_type": "non-expiring", "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" }, "sso_disabled": false, "cross_origin_authentication": false, @@ -11447,7 +11600,7 @@ "subject": "deprecated" } ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -11456,15 +11609,10 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" + "client_credentials" ], "custom_login_page_on": true }, @@ -11511,7 +11659,39 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw/enabled_connections", + "path": "/api/v2/organizations?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "organizations": [ + { + "id": "org_U1GPowP5fHVuX9iS", + "name": "org1", + "display_name": "Organization", + "branding": { + "colors": { + "page_background": "#fff5f5", + "primary": "#57ddff" + } + } + }, + { + "id": "org_TyQVczsJUGAC5u58", + "name": "org2", + "display_name": "Organization2" + } + ], + "start": 0, + "limit": 100, + "total": 2 + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/enabled_connections", "body": "", "status": 200, "response": [], @@ -11521,7 +11701,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw/client-grants?page=0&per_page=100&include_totals=true", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS/client-grants?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { @@ -11536,7 +11716,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI/enabled_connections", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/enabled_connections", "body": "", "status": 200, "response": [], @@ -11546,7 +11726,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI/client-grants?page=0&per_page=100&include_totals=true", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58/client-grants?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { @@ -11570,7 +11750,7 @@ "limit": 100, "connections": [ { - "id": "con_isbl83K0EyW745Cg", + "id": "con_Jd86qQK1FtuUb7xn", "options": { "mfa": { "active": true, @@ -11626,12 +11806,12 @@ "boo-baz-db-connection-test" ], "enabled_clients": [ - "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", + "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5" ] }, { - "id": "con_A4te7zSEQoMDxaQb", + "id": "con_SSAQuf1eAS4HALWp", "options": { "email": true, "scope": [ @@ -11647,12 +11827,12 @@ "google-oauth2" ], "enabled_clients": [ - "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", - "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT" + "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", + "tniZLhIl5zfT5rHYyHvzp380qWilhZrN" ] }, { - "id": "con_WFP0F318RCvc1yPr", + "id": "con_7tTU8dpv9keeCE5Q", "options": { "mfa": { "active": true, @@ -11683,7 +11863,7 @@ ], "enabled_clients": [ "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt" + "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O" ] } ] @@ -11694,500 +11874,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/client-grants?per_page=100&page=0&include_totals=true", + "path": "/api/v2/clients?page=0&per_page=100&include_totals=true", "body": "", "status": 200, "response": { - "total": 3, + "total": 10, "start": 0, "limit": 100, - "client_grants": [ - { - "id": "cgr_8IA0dLwj49O8P0R0", - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations" - ] - }, - { - "id": "cgr_V6CMP7ClGUswJBhB", - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations" - ] - }, - { - "id": "cgr_t3j1isctGZmOVylt", - "client_id": "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", - "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", - "scope": [ - "read:client_grants", - "create:client_grants", - "delete:client_grants", - "update:client_grants", - "read:users", - "update:users", - "delete:users", - "create:users", - "read:users_app_metadata", - "update:users_app_metadata", - "delete:users_app_metadata", - "create:users_app_metadata", - "read:user_custom_blocks", - "create:user_custom_blocks", - "delete:user_custom_blocks", - "create:user_tickets", - "read:clients", - "update:clients", - "delete:clients", - "create:clients", - "read:client_keys", - "update:client_keys", - "delete:client_keys", - "create:client_keys", - "read:connections", - "update:connections", - "delete:connections", - "create:connections", - "read:resource_servers", - "update:resource_servers", - "delete:resource_servers", - "create:resource_servers", - "read:device_credentials", - "update:device_credentials", - "delete:device_credentials", - "create:device_credentials", - "read:rules", - "update:rules", - "delete:rules", - "create:rules", - "read:rules_configs", - "update:rules_configs", - "delete:rules_configs", - "read:hooks", - "update:hooks", - "delete:hooks", - "create:hooks", - "read:actions", - "update:actions", - "delete:actions", - "create:actions", - "read:email_provider", - "update:email_provider", - "delete:email_provider", - "create:email_provider", - "blacklist:tokens", - "read:stats", - "read:insights", - "read:tenant_settings", - "update:tenant_settings", - "read:logs", - "read:logs_users", - "read:shields", - "create:shields", - "update:shields", - "delete:shields", - "read:anomaly_blocks", - "delete:anomaly_blocks", - "update:triggers", - "read:triggers", - "read:grants", - "delete:grants", - "read:guardian_factors", - "update:guardian_factors", - "read:guardian_enrollments", - "delete:guardian_enrollments", - "create:guardian_enrollment_tickets", - "read:user_idp_tokens", - "create:passwords_checking_job", - "delete:passwords_checking_job", - "read:custom_domains", - "delete:custom_domains", - "create:custom_domains", - "update:custom_domains", - "read:email_templates", - "create:email_templates", - "update:email_templates", - "read:mfa_policies", - "update:mfa_policies", - "read:roles", - "create:roles", - "delete:roles", - "update:roles", - "read:prompts", - "update:prompts", - "read:branding", - "update:branding", - "delete:branding", - "read:log_streams", - "create:log_streams", - "delete:log_streams", - "update:log_streams", - "create:signing_keys", - "read:signing_keys", - "update:signing_keys", - "read:limits", - "update:limits", - "create:role_members", - "read:role_members", - "delete:role_members", - "read:entitlements", - "read:attack_protection", - "update:attack_protection", - "read:organizations_summary", - "create:authentication_methods", - "read:authentication_methods", - "update:authentication_methods", - "delete:authentication_methods", - "read:organizations", - "update:organizations", - "create:organizations", - "delete:organizations", - "create:organization_members", - "read:organization_members", - "delete:organization_members", - "create:organization_connections", - "read:organization_connections", - "update:organization_connections", - "delete:organization_connections", - "create:organization_member_roles", - "read:organization_member_roles", - "delete:organization_member_roles", - "create:organization_invitations", - "read:organization_invitations", - "delete:organization_invitations", - "read:scim_config", - "create:scim_config", - "update:scim_config", - "delete:scim_config", - "create:scim_token", - "read:scim_token", - "delete:scim_token", - "delete:phone_providers", - "create:phone_providers", - "read:phone_providers", - "update:phone_providers", - "delete:phone_templates", - "create:phone_templates", - "read:phone_templates", - "update:phone_templates", - "create:encryption_keys", - "read:encryption_keys", - "update:encryption_keys", - "delete:encryption_keys", - "read:sessions", - "delete:sessions", - "read:refresh_tokens", - "delete:refresh_tokens", - "create:self_service_profiles", - "read:self_service_profiles", - "update:self_service_profiles", - "delete:self_service_profiles", - "create:sso_access_tickets", - "read:forms", - "update:forms", - "delete:forms", - "create:forms", - "read:flows", - "update:flows", - "delete:flows", - "create:flows", - "read:flows_vault", - "read:flows_vault_connections", - "update:flows_vault_connections", - "delete:flows_vault_connections", - "create:flows_vault_connections", - "read:flows_executions", - "delete:flows_executions", - "read:connections_options", - "update:connections_options", - "read:self_service_profile_custom_texts", - "update:self_service_profile_custom_texts", - "read:client_credentials", - "create:client_credentials", - "update:client_credentials", - "delete:client_credentials", - "read:organization_client_grants", - "create:organization_client_grants", - "delete:organization_client_grants" - ] - } - ] - }, - "rawHeaders": [], - "responseIsBinary": false - }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "GET", - "path": "/api/v2/clients?page=0&per_page=100&include_totals=true", - "body": "", - "status": 200, - "response": { - "total": 10, - "start": 0, - "limit": 100, - "clients": [ + "clients": [ { "tenant": "auth0-deploy-cli-e2e", "global": false, @@ -12256,7 +11950,7 @@ "subject": "deprecated" } ], - "client_id": "gVLyGUp8m5rbJEyg2WXrIJhgBv6IBeWt", + "client_id": "SwBMU7UEsU6wHGNZElKnz3X8UsILGj7O", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -12309,7 +12003,7 @@ "subject": "deprecated" } ], - "client_id": "qvbRDjvoY3UHtL8smDFsIUkXcXPdYH9z", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -12325,6 +12019,50 @@ ], "custom_login_page_on": true }, + { + "tenant": "auth0-deploy-cli-e2e", + "global": false, + "is_token_endpoint_ip_header_trusted": false, + "name": "Quickstarts API (Test Application)", + "client_metadata": { + "foo": "bar" + }, + "cross_origin_auth": false, + "is_first_party": true, + "oidc_conformant": true, + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 31557600, + "idle_token_lifetime": 2592000, + "rotation_type": "non-rotating" + }, + "sso_disabled": false, + "cross_origin_authentication": false, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "XxZAW9HgVwMKADslEyfwzJsESjfyNIDV", + "callback_url_template": false, + "client_secret": "[REDACTED]", + "jwt_configuration": { + "alg": "RS256", + "lifetime_in_seconds": 36000, + "secret_encoded": false + }, + "token_endpoint_auth_method": "client_secret_post", + "app_type": "non_interactive", + "grant_types": [ + "client_credentials" + ], + "custom_login_page_on": true + }, { "tenant": "auth0-deploy-cli-e2e", "global": false, @@ -12364,7 +12102,7 @@ } ], "allowed_origins": [], - "client_id": "6uVrKPOcApXZhqctgh1okdga1j0Mz8fb", + "client_id": "ugJJym1UHl8zqlBOvV0Xn9BRr934RRi5", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -12410,7 +12148,7 @@ "subject": "deprecated" } ], - "client_id": "JGTGEp0jKnBbmGLbswhTdRfeTkIOAV6X", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -12429,22 +12167,31 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "Quickstarts API (Test Application)", - "client_metadata": { - "foo": "bar" - }, + "name": "The Default App", + "allowed_clients": [], + "callbacks": [], + "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, - "oidc_conformant": true, + "native_social_login": { + "apple": { + "enabled": false + }, + "facebook": { + "enabled": false + } + }, + "oidc_conformant": false, "refresh_token": { "expiration_type": "non-expiring", "leeway": 0, "infinite_token_lifetime": true, "infinite_idle_token_lifetime": true, - "token_lifetime": 31557600, - "idle_token_lifetime": 2592000, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, "rotation_type": "non-rotating" }, + "sso": false, "sso_disabled": false, "cross_origin_authentication": false, "signing_keys": [ @@ -12454,7 +12201,7 @@ "subject": "deprecated" } ], - "client_id": "TBZ7R0GxnAgvbT2ky1kqq79ScKqsnYcq", + "client_id": "8UHeZZ8ZFNyYw0cDvJBN6FN1U51vROu0", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -12462,9 +12209,12 @@ "lifetime_in_seconds": 36000, "secret_encoded": false }, + "client_aliases": [], "token_endpoint_auth_method": "client_secret_post", - "app_type": "non_interactive", "grant_types": [ + "authorization_code", + "implicit", + "refresh_token", "client_credentials" ], "custom_login_page_on": true @@ -12473,9 +12223,14 @@ "tenant": "auth0-deploy-cli-e2e", "global": false, "is_token_endpoint_ip_header_trusted": false, - "name": "The Default App", + "name": "Test SPA", "allowed_clients": [], - "callbacks": [], + "allowed_logout_urls": [ + "http://localhost:3000" + ], + "callbacks": [ + "http://localhost:3000" + ], "client_metadata": {}, "cross_origin_auth": false, "is_first_party": true, @@ -12487,17 +12242,16 @@ "enabled": false } }, - "oidc_conformant": false, + "oidc_conformant": true, "refresh_token": { - "expiration_type": "non-expiring", + "expiration_type": "expiring", "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, "token_lifetime": 2592000, "idle_token_lifetime": 1296000, - "rotation_type": "non-rotating" + "infinite_token_lifetime": false, + "infinite_idle_token_lifetime": false, + "rotation_type": "rotating" }, - "sso": false, "sso_disabled": false, "cross_origin_authentication": false, "signing_keys": [ @@ -12507,7 +12261,7 @@ "subject": "deprecated" } ], - "client_id": "CNCX1hYdRY3lm4gXEkt8GEO4hUUUZmM1", + "client_id": "JDuuREMI6GlTmysUjewqvwIf9sYJMrQV", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -12516,12 +12270,15 @@ "secret_encoded": false }, "client_aliases": [], - "token_endpoint_auth_method": "client_secret_post", + "token_endpoint_auth_method": "none", + "app_type": "spa", "grant_types": [ "authorization_code", "implicit", - "refresh_token", - "client_credentials" + "refresh_token" + ], + "web_origins": [ + "http://localhost:3000" ], "custom_login_page_on": true }, @@ -12562,7 +12319,7 @@ "subject": "deprecated" } ], - "client_id": "KMfOuNkReFcETEZVLbfWip5ns3VsjxHT", + "client_id": "tniZLhIl5zfT5rHYyHvzp380qWilhZrN", "callback_url_template": false, "client_secret": "[REDACTED]", "jwt_configuration": { @@ -12579,102 +12336,525 @@ "custom_login_page_on": true }, { - "tenant": "auth0-deploy-cli-e2e", - "global": false, - "is_token_endpoint_ip_header_trusted": false, - "name": "Test SPA", - "allowed_clients": [], - "allowed_logout_urls": [ - "http://localhost:3000" - ], - "callbacks": [ - "http://localhost:3000" - ], - "client_metadata": {}, - "cross_origin_auth": false, - "is_first_party": true, - "native_social_login": { - "apple": { - "enabled": false - }, - "facebook": { - "enabled": false - } - }, - "oidc_conformant": true, - "refresh_token": { - "expiration_type": "expiring", - "leeway": 0, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "infinite_token_lifetime": false, - "infinite_idle_token_lifetime": false, - "rotation_type": "rotating" - }, - "sso_disabled": false, - "cross_origin_authentication": false, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "jXrCrcnqVajECDhBwqkiGAuZn0obc5k5", - "callback_url_template": false, - "client_secret": "[REDACTED]", - "jwt_configuration": { - "alg": "RS256", - "lifetime_in_seconds": 36000, - "secret_encoded": false - }, - "client_aliases": [], - "token_endpoint_auth_method": "none", - "app_type": "spa", - "grant_types": [ - "authorization_code", - "implicit", - "refresh_token" - ], - "web_origins": [ - "http://localhost:3000" - ], - "custom_login_page_on": true + "tenant": "auth0-deploy-cli-e2e", + "global": true, + "callbacks": [], + "is_first_party": true, + "name": "All Applications", + "refresh_token": { + "expiration_type": "non-expiring", + "leeway": 0, + "infinite_token_lifetime": true, + "infinite_idle_token_lifetime": true, + "token_lifetime": 2592000, + "idle_token_lifetime": 1296000, + "rotation_type": "non-rotating" + }, + "owners": [ + "mr|samlp|okta|will.vedder@auth0.com", + "mr|google-oauth2|102002633619863830825", + "mr|samlp|okta|frederik.prijck@auth0.com", + "mr|google-oauth2|109614534713742077035", + "mr|google-oauth2|116771660953104383819" + ], + "custom_login_page": "TEST123\n", + "cross_origin_authentication": true, + "signing_keys": [ + { + "cert": "[REDACTED]", + "pkcs7": "[REDACTED]", + "subject": "deprecated" + } + ], + "client_id": "Isi93ibGHIGwmdYjsLwTOn7Gu7nwxU3V", + "client_secret": "[REDACTED]", + "custom_login_page_on": true + } + ] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/client-grants?per_page=100&page=0&include_totals=true", + "body": "", + "status": 200, + "response": { + "total": 3, + "start": 0, + "limit": 100, + "client_grants": [ + { + "id": "cgr_KE5stboZltPop0tc", + "client_id": "PEBY5yBtbks5KueJ3x7eUTDci2p9uZqI", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] + }, + { + "id": "cgr_XRy0Lk9J8dl7iIt0", + "client_id": "43XVArsPLrVJXYdbm8wujhnlK08MmHxQ", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations" + ] }, { - "tenant": "auth0-deploy-cli-e2e", - "global": true, - "callbacks": [], - "is_first_party": true, - "name": "All Applications", - "refresh_token": { - "expiration_type": "non-expiring", - "leeway": 0, - "infinite_token_lifetime": true, - "infinite_idle_token_lifetime": true, - "token_lifetime": 2592000, - "idle_token_lifetime": 1296000, - "rotation_type": "non-rotating" - }, - "owners": [ - "mr|samlp|okta|will.vedder@auth0.com", - "mr|google-oauth2|102002633619863830825", - "mr|samlp|okta|frederik.prijck@auth0.com", - "mr|google-oauth2|109614534713742077035", - "mr|google-oauth2|116771660953104383819" - ], - "custom_login_page": "TEST123\n", - "cross_origin_authentication": true, - "signing_keys": [ - { - "cert": "[REDACTED]", - "pkcs7": "[REDACTED]", - "subject": "deprecated" - } - ], - "client_id": "Isi93ibGHIGwmdYjsLwTOn7Gu7nwxU3V", - "client_secret": "[REDACTED]", - "custom_login_page_on": true + "id": "cgr_t3j1isctGZmOVylt", + "client_id": "Vp0gMRF8PtMzekil38qWoj4Fjw2VjRZE", + "audience": "https://auth0-deploy-cli-e2e.us.auth0.com/api/v2/", + "scope": [ + "read:client_grants", + "create:client_grants", + "delete:client_grants", + "update:client_grants", + "read:users", + "update:users", + "delete:users", + "create:users", + "read:users_app_metadata", + "update:users_app_metadata", + "delete:users_app_metadata", + "create:users_app_metadata", + "read:user_custom_blocks", + "create:user_custom_blocks", + "delete:user_custom_blocks", + "create:user_tickets", + "read:clients", + "update:clients", + "delete:clients", + "create:clients", + "read:client_keys", + "update:client_keys", + "delete:client_keys", + "create:client_keys", + "read:connections", + "update:connections", + "delete:connections", + "create:connections", + "read:resource_servers", + "update:resource_servers", + "delete:resource_servers", + "create:resource_servers", + "read:device_credentials", + "update:device_credentials", + "delete:device_credentials", + "create:device_credentials", + "read:rules", + "update:rules", + "delete:rules", + "create:rules", + "read:rules_configs", + "update:rules_configs", + "delete:rules_configs", + "read:hooks", + "update:hooks", + "delete:hooks", + "create:hooks", + "read:actions", + "update:actions", + "delete:actions", + "create:actions", + "read:email_provider", + "update:email_provider", + "delete:email_provider", + "create:email_provider", + "blacklist:tokens", + "read:stats", + "read:insights", + "read:tenant_settings", + "update:tenant_settings", + "read:logs", + "read:logs_users", + "read:shields", + "create:shields", + "update:shields", + "delete:shields", + "read:anomaly_blocks", + "delete:anomaly_blocks", + "update:triggers", + "read:triggers", + "read:grants", + "delete:grants", + "read:guardian_factors", + "update:guardian_factors", + "read:guardian_enrollments", + "delete:guardian_enrollments", + "create:guardian_enrollment_tickets", + "read:user_idp_tokens", + "create:passwords_checking_job", + "delete:passwords_checking_job", + "read:custom_domains", + "delete:custom_domains", + "create:custom_domains", + "update:custom_domains", + "read:email_templates", + "create:email_templates", + "update:email_templates", + "read:mfa_policies", + "update:mfa_policies", + "read:roles", + "create:roles", + "delete:roles", + "update:roles", + "read:prompts", + "update:prompts", + "read:branding", + "update:branding", + "delete:branding", + "read:log_streams", + "create:log_streams", + "delete:log_streams", + "update:log_streams", + "create:signing_keys", + "read:signing_keys", + "update:signing_keys", + "read:limits", + "update:limits", + "create:role_members", + "read:role_members", + "delete:role_members", + "read:entitlements", + "read:attack_protection", + "update:attack_protection", + "read:organizations_summary", + "create:authentication_methods", + "read:authentication_methods", + "update:authentication_methods", + "delete:authentication_methods", + "read:organizations", + "update:organizations", + "create:organizations", + "delete:organizations", + "create:organization_members", + "read:organization_members", + "delete:organization_members", + "create:organization_connections", + "read:organization_connections", + "update:organization_connections", + "delete:organization_connections", + "create:organization_member_roles", + "read:organization_member_roles", + "delete:organization_member_roles", + "create:organization_invitations", + "read:organization_invitations", + "delete:organization_invitations", + "read:scim_config", + "create:scim_config", + "update:scim_config", + "delete:scim_config", + "create:scim_token", + "read:scim_token", + "delete:scim_token", + "delete:phone_providers", + "create:phone_providers", + "read:phone_providers", + "update:phone_providers", + "delete:phone_templates", + "create:phone_templates", + "read:phone_templates", + "update:phone_templates", + "create:encryption_keys", + "read:encryption_keys", + "update:encryption_keys", + "delete:encryption_keys", + "read:sessions", + "delete:sessions", + "read:refresh_tokens", + "delete:refresh_tokens", + "create:self_service_profiles", + "read:self_service_profiles", + "update:self_service_profiles", + "delete:self_service_profiles", + "create:sso_access_tickets", + "read:forms", + "update:forms", + "delete:forms", + "create:forms", + "read:flows", + "update:flows", + "delete:flows", + "create:flows", + "read:flows_vault", + "read:flows_vault_connections", + "update:flows_vault_connections", + "delete:flows_vault_connections", + "create:flows_vault_connections", + "read:flows_executions", + "delete:flows_executions", + "read:connections_options", + "update:connections_options", + "read:self_service_profile_custom_texts", + "update:self_service_profile_custom_texts", + "read:client_credentials", + "create:client_credentials", + "update:client_credentials", + "delete:client_credentials", + "read:organization_client_grants", + "create:organization_client_grants", + "delete:organization_client_grants" + ] } ] }, @@ -12684,7 +12864,23 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", - "path": "/api/v2/organizations/org_98JjeO1GOLPTEzMw", + "path": "/api/v2/organizations/org_TyQVczsJUGAC5u58", + "body": { + "display_name": "Organization2" + }, + "status": 200, + "response": { + "id": "org_TyQVczsJUGAC5u58", + "display_name": "Organization2", + "name": "org2" + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "PATCH", + "path": "/api/v2/organizations/org_U1GPowP5fHVuX9iS", "body": { "branding": { "colors": { @@ -12702,29 +12898,13 @@ "primary": "#57ddff" } }, - "id": "org_98JjeO1GOLPTEzMw", + "id": "org_U1GPowP5fHVuX9iS", "display_name": "Organization", "name": "org1" }, "rawHeaders": [], "responseIsBinary": false }, - { - "scope": "https://deploy-cli-dev.eu.auth0.com:443", - "method": "PATCH", - "path": "/api/v2/organizations/org_sqjTOFGOVZmKWPsI", - "body": { - "display_name": "Organization2" - }, - "status": 200, - "response": { - "id": "org_sqjTOFGOVZmKWPsI", - "display_name": "Organization2", - "name": "org2" - }, - "rawHeaders": [], - "responseIsBinary": false - }, { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "PATCH", diff --git a/test/e2e/recordings/should-dump-without-throwing-an-error.json b/test/e2e/recordings/should-dump-without-throwing-an-error.json index ec79635c..cb1773db 100644 --- a/test/e2e/recordings/should-dump-without-throwing-an-error.json +++ b/test/e2e/recordings/should-dump-without-throwing-an-error.json @@ -1762,7 +1762,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/reset_email", + "path": "/api/v2/email-templates/stolen_credentials", "body": "", "status": 404, "response": { @@ -1777,18 +1777,14 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/welcome_email", + "path": "/api/v2/email-templates/enrollment_email", "body": "", - "status": 200, + "status": 404, "response": { - "template": "welcome_email", - "body": "\n \n

Welcome!

\n \n\n", - "from": "", - "resultUrl": "https://example.com/welcome", - "subject": "Welcome", - "syntax": "liquid", - "urlLifetimeInSeconds": 3600, - "enabled": false + "statusCode": 404, + "error": "Not Found", + "message": "The template does not exist.", + "errorCode": "inexistent_email_template" }, "rawHeaders": [], "responseIsBinary": false @@ -1796,7 +1792,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/verify_email_by_code", + "path": "/api/v2/email-templates/reset_email", "body": "", "status": 404, "response": { @@ -1811,7 +1807,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/mfa_oob_code", + "path": "/api/v2/email-templates/change_password", "body": "", "status": 404, "response": { @@ -1826,14 +1822,18 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/blocked_account", + "path": "/api/v2/email-templates/welcome_email", "body": "", - "status": 404, + "status": 200, "response": { - "statusCode": 404, - "error": "Not Found", - "message": "The template does not exist.", - "errorCode": "inexistent_email_template" + "template": "welcome_email", + "body": "\n \n

Welcome!

\n \n\n", + "from": "", + "resultUrl": "https://example.com/welcome", + "subject": "Welcome", + "syntax": "liquid", + "urlLifetimeInSeconds": 3600, + "enabled": false }, "rawHeaders": [], "responseIsBinary": false @@ -1841,7 +1841,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/user_invitation", + "path": "/api/v2/email-templates/password_reset", "body": "", "status": 404, "response": { @@ -1856,7 +1856,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/enrollment_email", + "path": "/api/v2/email-templates/verify_email_by_code", "body": "", "status": 404, "response": { @@ -1871,7 +1871,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/change_password", + "path": "/api/v2/email-templates/user_invitation", "body": "", "status": 404, "response": { @@ -1886,7 +1886,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/stolen_credentials", + "path": "/api/v2/email-templates/mfa_oob_code", "body": "", "status": 404, "response": { @@ -1901,7 +1901,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/email-templates/password_reset", + "path": "/api/v2/email-templates/blocked_account", "body": "", "status": 404, "response": { @@ -2744,7 +2744,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-id/custom-text/en", + "path": "/api/v2/prompts/login/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2754,7 +2754,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login/custom-text/en", + "path": "/api/v2/prompts/login-password/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2764,7 +2764,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-password/custom-text/en", + "path": "/api/v2/prompts/login-id/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2804,7 +2804,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/reset-password/custom-text/en", + "path": "/api/v2/prompts/signup-password/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2814,7 +2814,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/signup-password/custom-text/en", + "path": "/api/v2/prompts/reset-password/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2824,7 +2824,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/consent/custom-text/en", + "path": "/api/v2/prompts/mfa-otp/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2834,7 +2834,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-push/custom-text/en", + "path": "/api/v2/prompts/consent/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2844,7 +2844,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-otp/custom-text/en", + "path": "/api/v2/prompts/mfa-push/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2884,7 +2884,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-email/custom-text/en", + "path": "/api/v2/prompts/mfa-sms/custom-text/en", "body": "", "status": 200, "response": {}, @@ -2894,7 +2894,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/mfa-sms/custom-text/en", + "path": "/api/v2/prompts/mfa-email/custom-text/en", "body": "", "status": 200, "response": {}, @@ -3004,7 +3004,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login/partials", + "path": "/api/v2/prompts/login-password/partials", "body": "", "status": 200, "response": {}, @@ -3014,7 +3014,7 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/prompts/login-password/partials", + "path": "/api/v2/prompts/login/partials", "body": "", "status": 200, "response": {}, @@ -3131,6 +3131,24 @@ "status": 200, "response": { "triggers": [ + { + "id": "post-login", + "version": "v3", + "status": "CURRENT", + "runtimes": [ + "node12", + "node16", + "node18-actions" + ], + "default_runtime": "node18-actions", + "binding_policy": "trigger-bound", + "compatible_triggers": [ + { + "id": "post-login", + "version": "v2" + } + ] + }, { "id": "post-login", "version": "v1", @@ -3155,8 +3173,8 @@ "compatible_triggers": [] }, { - "id": "post-login", - "version": "v3", + "id": "credentials-exchange", + "version": "v2", "status": "CURRENT", "runtimes": [ "node12", @@ -3165,12 +3183,7 @@ ], "default_runtime": "node18-actions", "binding_policy": "trigger-bound", - "compatible_triggers": [ - { - "id": "post-login", - "version": "v2" - } - ] + "compatible_triggers": [] }, { "id": "credentials-exchange", @@ -3183,19 +3196,6 @@ "binding_policy": "trigger-bound", "compatible_triggers": [] }, - { - "id": "credentials-exchange", - "version": "v2", - "status": "CURRENT", - "runtimes": [ - "node12", - "node16", - "node18-actions" - ], - "default_runtime": "node18-actions", - "binding_policy": "trigger-bound", - "compatible_triggers": [] - }, { "id": "pre-user-registration", "version": "v1", @@ -3270,24 +3270,24 @@ }, { "id": "send-phone-message", - "version": "v2", - "status": "CURRENT", + "version": "v1", + "status": "DEPRECATED", "runtimes": [ - "node12", - "node16", - "node18-actions" + "node12" ], - "default_runtime": "node18-actions", "binding_policy": "trigger-bound", "compatible_triggers": [] }, { "id": "send-phone-message", - "version": "v1", - "status": "DEPRECATED", + "version": "v2", + "status": "CURRENT", "runtimes": [ - "node12" + "node12", + "node16", + "node18-actions" ], + "default_runtime": "node18-actions", "binding_policy": "trigger-bound", "compatible_triggers": [] }, @@ -4080,19 +4080,18 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/attack-protection/breached-password-detection", + "path": "/api/v2/attack-protection/brute-force-protection", "body": "", "status": 200, "response": { - "enabled": false, - "shields": [], - "admin_notification_frequency": [], - "method": "standard", - "stage": { - "pre-user-registration": { - "shields": [] - } - } + "enabled": true, + "shields": [ + "block", + "user_notification" + ], + "mode": "count_per_identifier_and_ip", + "allowlist": [], + "max_attempts": 10 }, "rawHeaders": [], "responseIsBinary": false @@ -4100,18 +4099,19 @@ { "scope": "https://deploy-cli-dev.eu.auth0.com:443", "method": "GET", - "path": "/api/v2/attack-protection/brute-force-protection", + "path": "/api/v2/attack-protection/breached-password-detection", "body": "", "status": 200, "response": { - "enabled": true, - "shields": [ - "block", - "user_notification" - ], - "mode": "count_per_identifier_and_ip", - "allowlist": [], - "max_attempts": 10 + "enabled": false, + "shields": [], + "admin_notification_frequency": [], + "method": "standard", + "stage": { + "pre-user-registration": { + "shields": [] + } + } }, "rawHeaders": [], "responseIsBinary": false @@ -4239,5 +4239,80 @@ }, "rawHeaders": [], "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/forms?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "forms": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "flows": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "flows": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "connections": [] + }, + "rawHeaders": [], + "responseIsBinary": false + }, + { + "scope": "https://deploy-cli-dev.eu.auth0.com:443", + "method": "GET", + "path": "/api/v2/flows/vault/connections?page=0&per_page=100&include_totals=true", + "body": "", + "status": 200, + "response": { + "limit": 100, + "start": 0, + "total": 0, + "connections": [] + }, + "rawHeaders": [], + "responseIsBinary": false } ] \ No newline at end of file diff --git a/test/e2e/recordings/should-only-dump-the-resources-listed-in-AUTH0_INCLUDED_ONLY.json b/test/e2e/recordings/should-only-dump-the-resources-listed-in-AUTH0_INCLUDED_ONLY.json index b5f2619e..84417f61 100644 --- a/test/e2e/recordings/should-only-dump-the-resources-listed-in-AUTH0_INCLUDED_ONLY.json +++ b/test/e2e/recordings/should-only-dump-the-resources-listed-in-AUTH0_INCLUDED_ONLY.json @@ -6,6 +6,9 @@ "body": "", "status": 200, "response": { + "allowed_logout_urls": [ + "https://mycompany.org/logoutCallback" + ], "change_password": { "enabled": true, "html": "Change Password\n" @@ -22,34 +25,46 @@ "allow_changing_enable_sso": false, "allow_legacy_delegation_grant_types": true, "allow_legacy_ro_grant_types": true, + "change_pwd_flow_v1": false, "disable_impersonation": true, - "enable_dynamic_client_registration": true, + "enable_apis_section": false, + "enable_client_connections": false, + "enable_custom_domain_in_emails": false, + "enable_dynamic_client_registration": false, + "enable_legacy_logs_search_v2": false, + "enable_public_signup_user_exists_error": true, "enable_sso": true, "new_universal_login_experience_enabled": true, "universal_login": true, + "use_scope_descriptions_for_consent": false, "revoke_refresh_token_grant": false, - "dashboard_new_onboarding": false, - "mfa_show_factor_list_on_enrollment": false, - "disable_clickjack_protection_headers": false + "disable_clickjack_protection_headers": false, + "enable_pipeline2": false }, + "friendly_name": "My Test Tenant", "guardian_mfa_page": { "enabled": true, "html": "MFA\n" }, - "picture_url": "https://cdn.auth0.com/manhattan/versions/1.3935.0/assets/badge.png", - "sandbox_version": "18", - "oidc_logout": { - "rp_logout_end_session_endpoint_discovery": true - }, + "idle_session_lifetime": 1, + "picture_url": "https://upload.wikimedia.org/wikipedia/commons/0/0d/Grandmas_marathon_finishers.png", + "sandbox_version": "12", + "session_lifetime": 3.0166666666666666, + "support_email": "support@mycompany.org", + "support_url": "https://mycompany.org/support", "universal_login": { "colors": { - "page_background": "#000000", - "primary": "#5ce4ff" + "primary": "#F8F8F2", + "page_background": "#222221" } }, + "session_cookie": { + "mode": "non-persistent" + }, "sandbox_versions_available": [ "18", - "16" + "16", + "12" ] }, "rawHeaders": [], @@ -64,119 +79,54 @@ "response": { "actions": [ { - "id": "e105b5a8-cdea-4292-b588-383cb12bdbcc", - "name": "k-flow", - "supported_triggers": [ - { - "id": "post-login", - "version": "v3" - } - ], - "created_at": "2024-08-11T18:43:54.559933482Z", - "updated_at": "2024-09-26T07:32:36.751347258Z", - "code": "/**\n* Handler that will be called during the execution of a PostLogin flow.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\nexports.onExecutePostLogin = async (event, api) => {\n console.log(event.secrets)\n // if (event.user.nickname != \"kushal.shit\"){\n // api.access.deny(\"Unknown user!!\")\n // }\n};\n\n\n/**\n* Handler that will be invoked when this action is resuming after an external redirect. If your\n* onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", - "dependencies": [], - "runtime": "node18-actions", - "status": "built", - "secrets": [ - { - "name": "my_secret_url", - "updated_at": "2024-09-18T09:55:00.423293831Z" - }, - { - "name": "sec_1", - "updated_at": "2024-09-18T09:55:00.423293831Z" - } - ], - "current_version": { - "id": "44dd594d-c57d-490f-b22b-5fb499b81afd", - "code": "/**\n* Handler that will be called during the execution of a PostLogin flow.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\nexports.onExecutePostLogin = async (event, api) => {\n console.log(event.secrets)\n // if (event.user.nickname != \"kushal.shit\"){\n // api.access.deny(\"Unknown user!!\")\n // }\n};\n\n\n/**\n* Handler that will be invoked when this action is resuming after an external redirect. If your\n* onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", - "runtime": "node18-actions", - "status": "BUILT", - "number": 51, - "build_time": "2024-09-26T07:32:46.544296361Z", - "created_at": "2024-09-26T07:32:46.472453906Z", - "updated_at": "2024-09-26T07:32:46.544910189Z" - }, - "deployed_version": { - "code": "/**\n* Handler that will be called during the execution of a PostLogin flow.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\nexports.onExecutePostLogin = async (event, api) => {\n console.log(event.secrets)\n // if (event.user.nickname != \"kushal.shit\"){\n // api.access.deny(\"Unknown user!!\")\n // }\n};\n\n\n/**\n* Handler that will be invoked when this action is resuming after an external redirect. If your\n* onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", - "dependencies": [], - "id": "44dd594d-c57d-490f-b22b-5fb499b81afd", - "deployed": true, - "number": 51, - "built_at": "2024-09-26T07:32:46.544296361Z", - "secrets": [ - { - "name": "my_secret_url", - "updated_at": "2024-09-18T09:55:00.423293831Z" - }, - { - "name": "sec_1", - "updated_at": "2024-09-18T09:55:00.423293831Z" - } - ], - "status": "built", - "created_at": "2024-09-26T07:32:46.472453906Z", - "updated_at": "2024-09-26T07:32:46.544910189Z", - "runtime": "node18-actions", - "supported_triggers": [ - { - "id": "post-login", - "version": "v3" - } - ] - }, - "all_changes_deployed": true - }, - { - "id": "4301ffb3-fc3f-40cb-9b0b-2bb23f090327", - "name": "post-login-onbording", + "id": "f921cc75-2b3b-4dd8-b1dd-d3c12f61df11", + "name": "My Custom Action", "supported_triggers": [ { "id": "post-login", - "version": "v3" + "version": "v2" } ], - "created_at": "2024-08-12T11:09:42.970451051Z", - "updated_at": "2024-09-26T07:32:37.762276179Z", - "code": "/**\n* Handler that will be called during the execution of a PostLogin flow.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\nexports.onExecutePostLogin = async (event, api) => {\n const FORM_ID = 'ap_vHcEKGZJ5oaTYTePwe2W1T';\n\n api.prompt.render(FORM_ID);\n};\nexports.onContinuePostLogin = async (event, api) => {}\n\n/**\n* Handler that will be invoked when this action is resuming after an external redirect. If your\n* onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "created_at": "2024-11-07T10:04:42.823412691Z", + "updated_at": "2024-11-07T10:04:42.845236889Z", + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "runtime": "node18-actions", + "runtime": "node16", "status": "built", "secrets": [], "current_version": { - "id": "7a9f26f0-d5d7-45e5-b9a0-eaa9a6430299", - "code": "/**\n* Handler that will be called during the execution of a PostLogin flow.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\nexports.onExecutePostLogin = async (event, api) => {\n const FORM_ID = 'ap_vHcEKGZJ5oaTYTePwe2W1T';\n\n api.prompt.render(FORM_ID);\n};\nexports.onContinuePostLogin = async (event, api) => {}\n\n/**\n* Handler that will be invoked when this action is resuming after an external redirect. If your\n* onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", - "runtime": "node18-actions", + "id": "13d6692b-486f-4307-8957-64e59dfaae70", + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "runtime": "node16", "status": "BUILT", - "number": 46, - "build_time": "2024-09-26T07:32:38.298040484Z", - "created_at": "2024-09-26T07:32:38.223235246Z", - "updated_at": "2024-09-26T07:32:38.299546854Z" + "number": 1, + "build_time": "2024-11-07T10:04:43.564446766Z", + "created_at": "2024-11-07T10:04:43.485782961Z", + "updated_at": "2024-11-07T10:04:43.567038665Z" }, "deployed_version": { - "code": "/**\n* Handler that will be called during the execution of a PostLogin flow.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\nexports.onExecutePostLogin = async (event, api) => {\n const FORM_ID = 'ap_vHcEKGZJ5oaTYTePwe2W1T';\n\n api.prompt.render(FORM_ID);\n};\nexports.onContinuePostLogin = async (event, api) => {}\n\n/**\n* Handler that will be invoked when this action is resuming after an external redirect. If your\n* onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n*\n* @param {Event} event - Details about the user and the context in which they are logging in.\n* @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n*/\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", + "code": "/**\n * Handler that will be called during the execution of a PostLogin flow.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\nexports.onExecutePostLogin = async (event, api) => {\n console.log('Some custom action!');\n};\n\n/**\n * Handler that will be invoked when this action is resuming after an external redirect. If your\n * onExecutePostLogin function does not perform a redirect, this function can be safely ignored.\n *\n * @param {Event} event - Details about the user and the context in which they are logging in.\n * @param {PostLoginAPI} api - Interface whose methods can be used to change the behavior of the login.\n */\n// exports.onContinuePostLogin = async (event, api) => {\n// };\n", "dependencies": [], - "id": "7a9f26f0-d5d7-45e5-b9a0-eaa9a6430299", + "id": "13d6692b-486f-4307-8957-64e59dfaae70", "deployed": true, - "number": 46, - "built_at": "2024-09-26T07:32:38.298040484Z", + "number": 1, + "built_at": "2024-11-07T10:04:43.564446766Z", "secrets": [], "status": "built", - "created_at": "2024-09-26T07:32:38.223235246Z", - "updated_at": "2024-09-26T07:32:38.299546854Z", - "runtime": "node18-actions", + "created_at": "2024-11-07T10:04:43.485782961Z", + "updated_at": "2024-11-07T10:04:43.567038665Z", + "runtime": "node16", "supported_triggers": [ { "id": "post-login", - "version": "v3" + "version": "v2" } ] }, "all_changes_deployed": true } ], - "total": 2, + "total": 1, "per_page": 100 }, "rawHeaders": [], diff --git a/test/tools/auth0/handlers/flowVaultConnections.tests.js b/test/tools/auth0/handlers/flowVaultConnections.tests.js new file mode 100644 index 00000000..db2ae478 --- /dev/null +++ b/test/tools/auth0/handlers/flowVaultConnections.tests.js @@ -0,0 +1,218 @@ +import { PromisePoolExecutor } from 'promise-pool-executor'; +import pageClient from '../../../../src/tools/auth0/client'; + +const { expect } = require('chai'); +const flowVaultConnections = require('../../../../src/tools/auth0/handlers/flowVaultConnections'); +const { mockPagedData } = require('../../../utils'); + +const pool = new PromisePoolExecutor({ + concurrencyLimit: 3, + frequencyLimit: 1000, + frequencyWindow: 1000, // 1 sec +}); + +const sampleFlowVaultConnections = { + id: 'ac_9AXxPP59pJx5ZtA471cSAy', + name: 'Sample Connection', + app_id: 'HTTP', + ready: false, +}; + +describe('#flowVaultConnections handler', () => { + const config = function (key) { + return config.data && config.data[key]; + }; + + config.data = { + AUTH0_ALLOW_DELETE: false, + }; + + describe('#flowVaultConnections validate', () => { + it('should not allow same names', async () => { + const handler = new flowVaultConnections.default({ client: {}, config }); + const stageFn = Object.getPrototypeOf(handler).validate; + const data = [ + { + name: 'some-flow-connection', + }, + { + name: 'some-flow-connection', + }, + ]; + + try { + await stageFn.apply(handler, [{ flowVaultConnections: data }]); + } catch (err) { + expect(err).to.be.an('object'); + expect(err.message).to.include('Names must be unique'); + } + }); + + it('should pass validation', async () => { + const handler = new flowVaultConnections.default({ client: {}, config }); + const stageFn = Object.getPrototypeOf(handler).validate; + const data = [ + { + name: 'some-flow-connection', + }, + ]; + + await stageFn.apply(handler, [{ clients: data }]); + }); + }); + + describe('#flowVaultConnections process', () => { + it('should return empty if no flowVaultConnections asset', async () => { + const auth0 = { + flowVaultConnections: {}, + pool, + }; + + const handler = new flowVaultConnections.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + const response = await stageFn.apply(handler, [{}]); + expect(response).to.equal(undefined); + }); + + it('should create flowVaultConnections', async () => { + const auth0 = { + flows: { + createConnection: function (data) { + (() => expect(this).to.not.be.undefined)(); + expect(data).to.be.an('object'); + expect(data.name).to.equal(sampleFlowVaultConnections.name); + return Promise.resolve({ data }); + }, + getAllConnections: (params) => mockPagedData(params, 'connections', []), + }, + pool, + }; + + const handler = new flowVaultConnections.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [ + { + flowVaultConnections: [sampleFlowVaultConnections], + }, + ]); + }); + + it('should get flowVaultConnections', async () => { + const auth0 = { + flows: { + getAllConnections: (params) => + mockPagedData(params, 'connections', [sampleFlowVaultConnections]), + }, + pool, + }; + + const handler = new flowVaultConnections.default({ client: pageClient(auth0), config }); + const data = await handler.getType(); + expect(data).to.deep.equal([sampleFlowVaultConnections]); + }); + + it('should update flowVaultConnections', async () => { + const auth0 = { + flows: { + updateConnection: function (params, data) { + (() => expect(this).to.not.be.undefined)(); + expect(params).to.be.an('object'); + expect(params.id).to.equal(sampleFlowVaultConnections.id); + expect(data).to.be.an('object'); + expect(data.name).to.equal(sampleFlowVaultConnections.name); + return Promise.resolve({ data }); + }, + getAllConnections: (params) => + mockPagedData(params, 'connections', [sampleFlowVaultConnections]), + }, + pool, + }; + + const handler = new flowVaultConnections.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [ + { + flowVaultConnections: [sampleFlowVaultConnections], + }, + ]); + }); + + it('should delete flowVaultConnections and create another one instead', async () => { + config.data.AUTH0_ALLOW_DELETE = true; + + const newFlowConnection = { + name: sampleFlowVaultConnections.name + ' new', + }; + const auth0 = { + flows: { + createConnection: function (data) { + (() => expect(this).to.not.be.undefined)(); + expect(data).to.be.an('object'); + expect(data.name).to.equal(newFlowConnection.name); + return Promise.resolve({ data }); + }, + deleteConnection: function (params) { + (() => expect(this).to.not.be.undefined)(); + expect(params).to.be.an('object'); + expect(params.id).to.equal(sampleFlowVaultConnections.id); + return Promise.resolve({ data: [] }); + }, + getAllConnections: (params) => + mockPagedData(params, 'connections', [sampleFlowVaultConnections]), + }, + pool, + }; + + const handler = new flowVaultConnections.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [{ flowVaultConnections: [newFlowConnection] }]); + }); + + it('should delete all flowVaultConnections', async () => { + let removed = false; + const auth0 = { + flows: { + deleteConnection: function (params) { + removed = true; + (() => expect(this).to.not.be.undefined)(); + expect(params).to.be.an('object'); + expect(params.id).to.equal(sampleFlowVaultConnections.id); + return Promise.resolve({ data: [] }); + }, + getAllConnections: (params) => + mockPagedData(params, 'connections', [sampleFlowVaultConnections]), + }, + pool, + }; + + const handler = new flowVaultConnections.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [{ flowVaultConnections: [] }]); + expect(removed).to.equal(true); + }); + + it('should not remove flowVaultConnections if it is not allowed by config', async () => { + config.data.AUTH0_ALLOW_DELETE = false; + const auth0 = { + flows: { + deleteConnection: (params) => { + expect(params).to.be.an('undefined'); + return Promise.resolve({ data: [] }); + }, + getAllConnections: (params) => + mockPagedData(params, 'connections', [sampleFlowVaultConnections]), + }, + pool, + }; + + const handler = new flowVaultConnections.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [{ flowVaultConnections: [] }]); + }); + }); +}); diff --git a/test/tools/auth0/handlers/flows.tests.js b/test/tools/auth0/handlers/flows.tests.js new file mode 100644 index 00000000..9f435b3c --- /dev/null +++ b/test/tools/auth0/handlers/flows.tests.js @@ -0,0 +1,375 @@ +import { PromisePoolExecutor } from 'promise-pool-executor'; +import pageClient from '../../../../src/tools/auth0/client'; + +const { expect } = require('chai'); +const flows = require('../../../../src/tools/auth0/handlers/flows'); +const { mockPagedData } = require('../../../utils'); + +const pool = new PromisePoolExecutor({ + concurrencyLimit: 3, + frequencyLimit: 1000, + frequencyWindow: 1000, // 1 sec +}); + +const sampleFlowWthID = { + name: 'sample flow 1', + id: 'af_9AXxPP59pJx5ZtA471cSAy', +}; + +const sampleConnectionWithID = { + name: 'Sample Connection', + id: 'ac_9AXxPP59pJx5ZtA471cSAy', +}; + +describe('#flows handler', () => { + const config = function (key) { + return config.data && config.data[key]; + }; + + config.data = { + AUTH0_ALLOW_DELETE: false, + }; + + describe('#flows validate', () => { + it('should not allow same names', async () => { + const handler = new flows.default({ client: {}, config }); + const stageFn = Object.getPrototypeOf(handler).validate; + const data = [ + { + name: 'some-flow', + }, + { + name: 'some-flow', + }, + ]; + + try { + await stageFn.apply(handler, [{ flows: data }]); + } catch (err) { + expect(err).to.be.an('object'); + expect(err.message).to.include('Names must be unique'); + } + }); + + it('should pass validation', async () => { + const handler = new flows.default({ client: {}, config }); + const stageFn = Object.getPrototypeOf(handler).validate; + const data = [ + { + name: 'some-flow', + }, + ]; + + await stageFn.apply(handler, [{ clients: data }]); + }); + }); + + describe('#flows process', () => { + it('should return empty if no flows asset', async () => { + const auth0 = { + flows: {}, + pool, + }; + + const handler = new flows.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + const response = await stageFn.apply(handler, [{}]); + expect(response).to.equal(undefined); + }); + + it('should create flows', async () => { + const auth0 = { + flows: { + create: function (data) { + (() => expect(this).to.not.be.undefined)(); + expect(data).to.be.an('object'); + expect(data.name).to.equal(sampleFlowWthID.name); + return Promise.resolve({ data }); + }, + update: () => Promise.resolve({ data: [] }), + delete: () => Promise.resolve({ data: [] }), + getAll: (params) => mockPagedData(params, 'flows', []), + getAllConnections: (params) => mockPagedData(params, 'connections', []), + }, + pool, + }; + + const handler = new flows.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [ + { + flows: [sampleFlowWthID], + }, + ]); + }); + + it('should create flows with connections', async () => { + const sampleFlowWthFlowFormatedNew = { + id: 'af_7AXxPP59pJx5ZtA471cSAw', + name: 'Sample Flow Wth connection', + actions: [ + { + id: 'update_user_PmSa', + alias: 'user meta data name', + type: 'AUTH0', + action: 'UPDATE_USER', + allow_failure: false, + mask_output: false, + params: { + connection_id: 'Sample Connection', + user_id: '{{context.user.user_id}}', + changes: { + user_metadata: { + full_name: '{{fields.full_name}}', + }, + }, + }, + }, + ], + }; + const auth0 = { + flows: { + create: function (data) { + (() => expect(this).to.not.be.undefined)(); + expect(data).to.be.an('object'); + return Promise.resolve({ data }); + }, + getAll: (params) => mockPagedData(params, 'flows', []), + getAllConnections: (params) => + mockPagedData(params, 'connections', [sampleConnectionWithID]), + }, + pool, + }; + + const handler = new flows.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [ + { + flows: [sampleFlowWthFlowFormatedNew], + }, + ]); + }); + + it('should get flows', async () => { + const auth0 = { + flows: { + getAll: (params) => mockPagedData(params, 'flows', [sampleFlowWthID]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFlowWthID, + }); + }, + getAllConnections: (params) => mockPagedData(params, 'connections', []), + }, + pool, + }; + + const handler = new flows.default({ client: pageClient(auth0), config }); + const data = await handler.getType(); + expect(data).to.deep.equal([sampleFlowWthID]); + }); + + it('should get flows with connection', async () => { + const sampleFlowWthFlowFormatedNew = { + id: 'af_7AXxPP59pJx5ZtA471cSAw', + name: 'Sample Flow Wth connection', + actions: [ + { + id: 'update_user_PmSa', + alias: 'user meta data name', + type: 'AUTH0', + action: 'UPDATE_USER', + allow_failure: false, + mask_output: false, + params: { + connection_id: 'Sample Connection', + user_id: '{{context.user.user_id}}', + changes: { + user_metadata: { + full_name: '{{fields.full_name}}', + }, + }, + }, + }, + ], + }; + + const sampleFlowWthConnectionWithIdNew = { + id: 'af_7AXxPP59pJx5ZtA471cSAw', + name: 'Sample Flow Wth connection', + actions: [ + { + id: 'update_user_PmSa', + alias: 'user meta data name', + type: 'AUTH0', + action: 'UPDATE_USER', + allow_failure: false, + mask_output: false, + params: { + connection_id: 'ac_9AXxPP59pJx5ZtA471cSAy', + user_id: '{{context.user.user_id}}', + changes: { + user_metadata: { + full_name: '{{fields.full_name}}', + }, + }, + }, + }, + ], + }; + const auth0 = { + flows: { + getAll: (params) => mockPagedData(params, 'flows', [sampleFlowWthConnectionWithIdNew]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFlowWthConnectionWithIdNew, + }); + }, + getAllConnections: (params) => + mockPagedData(params, 'connections', [sampleConnectionWithID]), + }, + pool, + }; + + const handler = new flows.default({ client: pageClient(auth0), config }); + const data = await handler.getType(); + + expect(data).to.deep.equal([sampleFlowWthFlowFormatedNew]); + }); + + it('should update flows', async () => { + const auth0 = { + flows: { + update: function (params, data) { + (() => expect(this).to.not.be.undefined)(); + expect(params).to.be.an('object'); + expect(params.id).to.equal(sampleFlowWthID.id); + expect(data).to.be.an('object'); + expect(data.name).to.equal(sampleFlowWthID.name); + return Promise.resolve({ data }); + }, + getAll: (params) => mockPagedData(params, 'flows', [sampleFlowWthID]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFlowWthID, + }); + }, + getAllConnections: (params) => mockPagedData(params, 'connections', []), + }, + pool, + }; + + const handler = new flows.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [ + { + flows: [sampleFlowWthID], + }, + ]); + }); + + it('should delete flows and create another one instead', async () => { + config.data.AUTH0_ALLOW_DELETE = true; + + const newFlow = { + name: sampleFlowWthID.name + ' new', + }; + const auth0 = { + flows: { + create: function (data) { + (() => expect(this).to.not.be.undefined)(); + expect(data).to.be.an('object'); + expect(data.name).to.equal(newFlow.name); + return Promise.resolve({ data }); + }, + delete: function (params) { + (() => expect(this).to.not.be.undefined)(); + expect(params).to.be.an('object'); + expect(params.id).to.equal(sampleFlowWthID.id); + return Promise.resolve({ data: [] }); + }, + getAll: (params) => mockPagedData(params, 'flows', [sampleFlowWthID]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFlowWthID, + }); + }, + getAllConnections: (params) => mockPagedData(params, 'connections', []), + }, + pool, + }; + + const handler = new flows.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [{ flows: [newFlow] }]); + }); + + it('should delete all flows', async () => { + let removed = false; + const auth0 = { + flows: { + delete: (params) => { + removed = true; + expect(params).to.be.an('object'); + return Promise.resolve({ data: [] }); + }, + getAll: (params) => mockPagedData(params, 'flows', [sampleFlowWthID]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFlowWthID, + }); + }, + getAllConnections: (params) => mockPagedData(params, 'connections', []), + }, + pool, + }; + + const handler = new flows.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [{ flows: [] }]); + expect(removed).to.equal(true); + }); + + it('should not remove flows if it is not allowed by config', async () => { + config.data.AUTH0_ALLOW_DELETE = false; + const auth0 = { + flows: { + delete: (params) => { + expect(params).to.be.an('undefined'); + return Promise.resolve({ data: [] }); + }, + getAll: (params) => mockPagedData(params, 'flows', [sampleFlowWthID]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFlowWthID, + }); + }, + getAllConnections: (params) => mockPagedData(params, 'connections', []), + }, + pool, + }; + + const handler = new flows.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [{ flows: [] }]); + }); + }); +}); diff --git a/test/tools/auth0/handlers/forms.tests.js b/test/tools/auth0/handlers/forms.tests.js new file mode 100644 index 00000000..d33972c4 --- /dev/null +++ b/test/tools/auth0/handlers/forms.tests.js @@ -0,0 +1,398 @@ +import { PromisePoolExecutor } from 'promise-pool-executor'; +import pageClient from '../../../../src/tools/auth0/client'; + +const { expect } = require('chai'); +const forms = require('../../../../src/tools/auth0/handlers/forms'); +const { mockPagedData } = require('../../../utils'); + +const pool = new PromisePoolExecutor({ + concurrencyLimit: 3, + frequencyLimit: 1000, + frequencyWindow: 1000, // 1 sec +}); + +const sampleFormWithOutId = { + name: 'someForm', + languages: { + primary: 'en', + }, +}; +const sampleFormWthID = { + name: 'sample form 1', + id: 'ap_9AXxPP59pJx5ZtA471cSAy', +}; + +const sampleFormTwoWthID = { + name: 'sample form 2', + id: 'ap_8AXxPP59pJx5ZtA471cSAw', +}; + +const sampleFlowWithID = { + name: 'Sample Flow', + id: 'af_9AXxPP59pJx5ZtA471cSAy', +}; + +const sampleFormWthFlowWithId = { + id: 'ap_7AXxPP59pJx5ZtA471cSAw', + name: 'Sample Form WthFlow', + nodes: [ + { + id: 'flow_tgyK', + type: 'FLOW', + coordinates: { + x: 237, + y: -326, + }, + alias: 'New flow', + config: { + flow_id: sampleFlowWithID.id, + next_node: 'flow_6a2h', + }, + }, + ], +}; + +const sampleFormWthFlowFormated = { + id: sampleFormWthFlowWithId.id, + name: sampleFormWthFlowWithId.name, + nodes: [ + { + id: 'flow_tgyK', + type: 'FLOW', + coordinates: { + x: 237, + y: -326, + }, + alias: 'New flow', + config: { + flow_id: 'Sample Flow', + next_node: 'flow_6a2h', + }, + }, + ], +}; + +describe('#forms handler', () => { + const config = function (key) { + return config.data && config.data[key]; + }; + + config.data = { + AUTH0_ALLOW_DELETE: false, + }; + + describe('#forms validate', () => { + it('should not allow same names', async () => { + const handler = new forms.default({ client: {}, config }); + const stageFn = Object.getPrototypeOf(handler).validate; + const data = [ + { + name: 'some-form', + }, + { + name: 'some-form', + }, + ]; + + try { + await stageFn.apply(handler, [{ forms: data }]); + } catch (err) { + expect(err).to.be.an('object'); + expect(err.message).to.include('Names must be unique'); + } + }); + + it('should pass validation', async () => { + const handler = new forms.default({ client: {}, config }); + const stageFn = Object.getPrototypeOf(handler).validate; + const data = [ + { + name: 'some-form', + }, + ]; + + await stageFn.apply(handler, [{ clients: data }]); + }); + }); + + describe('#forms process', () => { + it('should return empty if no forms asset', async () => { + const auth0 = { + forms: {}, + pool, + }; + + const handler = new forms.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + const response = await stageFn.apply(handler, [{}]); + expect(response).to.equal(undefined); + }); + + it('should create forms', async () => { + const auth0 = { + forms: { + create: function (data) { + (() => expect(this).to.not.be.undefined)(); + expect(data).to.be.an('object'); + expect(data.name).to.equal(sampleFormWithOutId.name); + expect(data.languages).to.be.an('object'); + expect(data.languages.primary).to.equal(sampleFormWithOutId.languages.primary); + return Promise.resolve({ data }); + }, + update: () => Promise.resolve({ data: [] }), + delete: () => Promise.resolve({ data: [] }), + getAll: (params) => mockPagedData(params, 'forms', []), + }, + flows: { + getAll: (params) => mockPagedData(params, 'flows', []), + }, + pool, + }; + + const handler = new forms.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [ + { + forms: [sampleFormWithOutId], + }, + ]); + }); + + it('should create forms with flow', async () => { + const auth0 = { + forms: { + create: function (data) { + (() => expect(this).to.not.be.undefined)(); + expect(data).to.be.an('object'); + return Promise.resolve({ data }); + }, + getAll: (params) => mockPagedData(params, 'forms', []), + }, + flows: { + getAll: (params) => mockPagedData(params, 'flows', [sampleFlowWithID]), + }, + pool, + }; + + const handler = new forms.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [ + { + forms: [sampleFormWthFlowFormated], + }, + ]); + }); + + it('should get forms', async () => { + const auth0 = { + forms: { + getAll: (params) => mockPagedData(params, 'forms', [sampleFormWthID]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFormWthID, + }); + }, + }, + flows: { + getAll: (params) => mockPagedData(params, 'flows', []), + }, + pool, + }; + + const handler = new forms.default({ client: pageClient(auth0), config }); + const data = await handler.getType(); + expect(data).to.deep.equal([sampleFormWthID]); + }); + + it('should get forms with flow', async () => { + const sampleFormWthFlowFormatedNew = { + id: sampleFormWthFlowWithId.id, + name: sampleFormWthFlowWithId.name, + nodes: [ + { + id: 'flow_tgyK', + type: 'FLOW', + coordinates: { + x: 237, + y: -326, + }, + alias: 'New flow', + config: { + flow_id: 'Sample Flow', + next_node: 'flow_6a2h', + }, + }, + ], + }; + const auth0 = { + forms: { + getAll: (params) => mockPagedData(params, 'forms', [sampleFormWthFlowWithId]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFormWthFlowWithId, + }); + }, + }, + flows: { + getAll: (params) => mockPagedData(params, 'flows', [sampleFlowWithID]), + }, + pool, + }; + + const handler = new forms.default({ client: pageClient(auth0), config }); + const data = await handler.getType(); + + expect(data).to.deep.equal([sampleFormWthFlowFormatedNew]); + }); + + it('should update forms', async () => { + const auth0 = { + forms: { + update: function (params, data) { + (() => expect(this).to.not.be.undefined)(); + expect(params).to.be.an('object'); + expect(params.id).to.equal(sampleFormWthID.id); + expect(data).to.be.an('object'); + expect(data.languages).to.be.an('object'); + expect(data.languages.primary).to.equal('en'); + + return Promise.resolve({ data }); + }, + getAll: (params) => mockPagedData(params, 'forms', [sampleFormWthID]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFormWthID, + }); + }, + }, + flows: { + getAll: (params) => mockPagedData(params, 'flows', []), + }, + pool, + }; + + const handler = new forms.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [ + { + forms: [ + { + name: sampleFormWthID.name, + id: sampleFormWthID.id, + languages: { + primary: 'en', + }, + }, + ], + }, + ]); + }); + + it('should delete forms and create another one instead', async () => { + config.data.AUTH0_ALLOW_DELETE = true; + + const auth0 = { + forms: { + create: function (data) { + (() => expect(this).to.not.be.undefined)(); + expect(data).to.be.an('object'); + expect(data.name).to.equal(sampleFormTwoWthID.name); + return Promise.resolve({ data }); + }, + delete: function (params) { + (() => expect(this).to.not.be.undefined)(); + expect(params).to.be.an('object'); + expect(params.id).to.equal(sampleFormWthID.id); + return Promise.resolve({ data: [] }); + }, + getAll: (params) => mockPagedData(params, 'forms', [sampleFormWthID]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFormWthID, + }); + }, + }, + flows: { + getAll: (params) => mockPagedData(params, 'flows', []), + }, + pool, + }; + + const handler = new forms.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [{ forms: [{ name: sampleFormTwoWthID.name }] }]); + }); + + it('should delete all forms', async () => { + let removed = false; + const auth0 = { + forms: { + delete: (params) => { + removed = true; + expect(params).to.be.an('object'); + return Promise.resolve({ data: [] }); + }, + getAll: (params) => mockPagedData(params, 'forms', [sampleFormWthID, sampleFormTwoWthID]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFormWthID, + }); + }, + }, + flows: { + getAll: (params) => mockPagedData(params, 'flows', []), + }, + pool, + }; + + const handler = new forms.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [{ forms: [] }]); + expect(removed).to.equal(true); + }); + + it('should not remove forms if it is not allowed by config', async () => { + config.data.AUTH0_ALLOW_DELETE = false; + const auth0 = { + forms: { + delete: (params) => { + expect(params).to.be.an('undefined'); + return Promise.resolve({ data: [] }); + }, + getAll: (params) => mockPagedData(params, 'forms', [sampleFormWthID, sampleFormTwoWthID]), + get: (params) => { + expect(params).to.be.an('object'); + expect(params.id).to.be.a('string'); + return Promise.resolve({ + data: sampleFormWthID, + }); + }, + }, + flows: { + getAll: (params) => mockPagedData(params, 'flows', []), + }, + pool, + }; + + const handler = new forms.default({ client: pageClient(auth0), config }); + const stageFn = Object.getPrototypeOf(handler).processChanges; + + await stageFn.apply(handler, [{ forms: [] }]); + }); + }); +}); diff --git a/test/utils.js b/test/utils.js index da54cab3..9d0a4213 100644 --- a/test/utils.js +++ b/test/utils.js @@ -131,6 +131,11 @@ export function mockMgmtClient() { get: () => ({ data: {} }), }, customDomains: { getAll: (params) => mockPagedData(params, 'custom_domains', []) }, + forms: { getAll: (params) => mockPagedData(params, 'forms', []) }, + flows: { + getAll: (params) => mockPagedData(params, 'flows', []), + getAllConnections: (params) => mockPagedData(params, 'connections', []), + }, }; }