diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index d855f324..8410a145 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -618,6 +618,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colored" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355" +dependencies = [ + "is-terminal", + "lazy_static", + "winapi", +] + [[package]] name = "combine" version = "4.6.6" @@ -1100,6 +1111,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee" dependencies = [ + "colored", "log", ] @@ -2098,6 +2110,17 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "is-terminal" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +dependencies = [ + "hermit-abi 0.3.3", + "rustix", + "windows-sys 0.48.0", +] + [[package]] name = "iso8601" version = "0.3.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 39daea15..a223d4e2 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -44,7 +44,7 @@ tauri = { version = "1.3", features = [ "dialog-save", ] } tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" } -tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" } +tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1", features = ["colored"] } tokio = { version = "1.25.0", features = ["sync"] } uuid = "1.3.0" log = "0.4.20" diff --git a/src-tauri/plugins/insomnia-importer/out/index.js b/src-tauri/plugins/importer-insomnia/out/index.js similarity index 100% rename from src-tauri/plugins/insomnia-importer/out/index.js rename to src-tauri/plugins/importer-insomnia/out/index.js diff --git a/src-tauri/plugins/insomnia-importer/src/helpers/types.js b/src-tauri/plugins/importer-insomnia/src/helpers/types.js similarity index 100% rename from src-tauri/plugins/insomnia-importer/src/helpers/types.js rename to src-tauri/plugins/importer-insomnia/src/helpers/types.js diff --git a/src-tauri/plugins/insomnia-importer/src/helpers/variables.js b/src-tauri/plugins/importer-insomnia/src/helpers/variables.js similarity index 100% rename from src-tauri/plugins/insomnia-importer/src/helpers/variables.js rename to src-tauri/plugins/importer-insomnia/src/helpers/variables.js diff --git a/src-tauri/plugins/insomnia-importer/src/importers/environment.js b/src-tauri/plugins/importer-insomnia/src/importers/environment.js similarity index 100% rename from src-tauri/plugins/insomnia-importer/src/importers/environment.js rename to src-tauri/plugins/importer-insomnia/src/importers/environment.js diff --git a/src-tauri/plugins/insomnia-importer/src/importers/folder.js b/src-tauri/plugins/importer-insomnia/src/importers/folder.js similarity index 100% rename from src-tauri/plugins/insomnia-importer/src/importers/folder.js rename to src-tauri/plugins/importer-insomnia/src/importers/folder.js diff --git a/src-tauri/plugins/insomnia-importer/src/importers/request.js b/src-tauri/plugins/importer-insomnia/src/importers/request.js similarity index 100% rename from src-tauri/plugins/insomnia-importer/src/importers/request.js rename to src-tauri/plugins/importer-insomnia/src/importers/request.js diff --git a/src-tauri/plugins/insomnia-importer/src/importers/workspace.js b/src-tauri/plugins/importer-insomnia/src/importers/workspace.js similarity index 100% rename from src-tauri/plugins/insomnia-importer/src/importers/workspace.js rename to src-tauri/plugins/importer-insomnia/src/importers/workspace.js diff --git a/src-tauri/plugins/insomnia-importer/src/index.js b/src-tauri/plugins/importer-insomnia/src/index.js similarity index 100% rename from src-tauri/plugins/insomnia-importer/src/index.js rename to src-tauri/plugins/importer-insomnia/src/index.js diff --git a/src-tauri/plugins/insomnia-importer/vite.config.js b/src-tauri/plugins/importer-insomnia/vite.config.js similarity index 100% rename from src-tauri/plugins/insomnia-importer/vite.config.js rename to src-tauri/plugins/importer-insomnia/vite.config.js diff --git a/src-tauri/plugins/importer-postman/out/index.js b/src-tauri/plugins/importer-postman/out/index.js new file mode 100644 index 00000000..9f656bce --- /dev/null +++ b/src-tauri/plugins/importer-postman/out/index.js @@ -0,0 +1,90 @@ +const m = 'https://schema.getpostman.com/json/collection/v2.1.0/collection.json'; +function b(e) { + const r = p(e); + if (r == null) return; + const i = s(r.info); + if (i.schema !== m || !Array.isArray(r.item)) return; + const n = { + workspaces: [], + environments: [], + requests: [], + folders: [], + }, + c = { + model: 'workspace', + id: 'wrk_0', + name: i.name || 'Postman Import', + description: i.description || '', + }; + n.workspaces.push(c); + const u = (o, l = null) => { + if (typeof o.name == 'string' && Array.isArray(o.item)) { + const t = { + model: 'folder', + workspaceId: c.id, + id: `fld_${n.folders.length}`, + name: o.name, + folderId: l, + }; + n.folders.push(t); + for (const a of o.item) u(a, t.id); + } else if (typeof o.name == 'string' && 'request' in o) { + const t = s(o.request), + a = f(t.body), + d = { + model: 'http_request', + id: `req_${n.requests.length}`, + workspaceId: c.id, + folderId: l, + name: o.name, + method: t.method || 'GET', + url: s(t.url).raw, + headers: [...a.headers, ...h(t.header).map(y)], + body: a.body, + bodyType: a.bodyType, + // TODO: support auth + // ...importAuth(r.auth), + }; + n.requests.push(d); + } else console.log('Unknown item', o, l); + }; + for (const o of r.item) u(o); + return { resources: n }; +} +function y(e) { + const r = s(e); + return { name: r.key, value: r.value, enabled: !0 }; +} +function f(e) { + const r = s(e); + return 'graphql' in r + ? { + headers: [ + { + name: 'Content-Type', + value: 'application/json', + enabled: !0, + }, + ], + bodyType: 'graphql', + body: JSON.stringify( + { query: r.graphql.query, variables: p(r.graphql.variables) }, + null, + 2, + ), + } + : { bodyType: null, body: null }; +} +function p(e) { + try { + return s(JSON.parse(e)); + } catch {} + return null; +} +function s(e) { + return Object.prototype.toString.call(e) === '[object Object]' ? e : {}; +} +function h(e) { + return Object.prototype.toString.call(e) === '[object Array]' ? e : []; +} +export { b as pluginHookImport }; diff --git a/src-tauri/plugins/importer-postman/postman.json b/src-tauri/plugins/importer-postman/postman.json new file mode 100644 index 00000000..11ea3d06 --- /dev/null +++ b/src-tauri/plugins/importer-postman/postman.json @@ -0,0 +1,5760 @@ +{ + "info": { + "name": "backboard.railway.app", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Queries", + "item": [ + { + "name": "adminVolumeInstancesForVolume", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query adminVolumeInstancesForVolume($volumeId: String!) {\n adminVolumeInstancesForVolume(volumeId: $volumeId) {\n __typename\n createdAt\n currentSizeMB\n # environment\n environmentId\n externalId\n id\n mountPath\n region\n # service\n serviceId\n sizeMB\n state\n # volume\n volumeId\n }\n}", + "variables": "{\n\t\"volumeId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get all volume instances for a given volume" + }, + "response": [] + }, + { + "name": "apiTokens", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query apiTokens($after: String, $before: String, $first: Int, $last: Int) {\n apiTokens(after: $after, before: $before, first: $first, last: $last) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"last\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets all API tokens for the authenticated user." + }, + "response": [] + }, + { + "name": "buildLogs", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query buildLogs($deploymentId: String!, $endDate: DateTime, $filter: String, $limit: Int, $startDate: DateTime) {\n buildLogs(\n deploymentId: $deploymentId\n endDate: $endDate\n filter: $filter\n limit: $limit\n startDate: $startDate\n ) {\n __typename\n # attributes # The attributes that were parsed from a structured log\n message # The contents of the log message\n severity # The severity of the log message (eg. err)\n # tags # The tags that were associated with the log\n timestamp # The timestamp of the log message in format RFC3339 (nano)\n }\n}", + "variables": "{\n\t\"deploymentId\": null,\n\t\"endDate\": null,\n\t\"filter\": null,\n\t\"limit\": null,\n\t\"startDate\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Fetch logs for a build" + }, + "response": [] + }, + { + "name": "changelogBlockImage", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query changelogBlockImage($id: String!) {\n changelogBlockImage(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets the image URL for a Notion image block" + }, + "response": [] + }, + { + "name": "changesets", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query changesets($after: String, $before: String, $environmentId: String!, $first: Int, $last: Int, $projectId: String!) {\n changesets(\n after: $after\n before: $before\n environmentId: $environmentId\n first: $first\n last: $last\n projectId: $projectId\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"environmentId\": null,\n\t\"first\": null,\n\t\"last\": null,\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets the history of changesets for an environment." + }, + "response": [] + }, + { + "name": "customDomain", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query customDomain($id: String!, $projectId: String!) {\n customDomain(id: $id, projectId: $projectId) {\n __typename\n # cnameCheck\n createdAt\n deletedAt\n domain\n environmentId\n id\n serviceId\n # status\n updatedAt\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Fetch details for a custom domain" + }, + "response": [] + }, + { + "name": "customDomainAvailable", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query customDomainAvailable($domain: String!) {\n customDomainAvailable(domain: $domain) {\n __typename\n available\n message\n }\n}", + "variables": "{\n\t\"domain\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Checks if a custom domain is available." + }, + "response": [] + }, + { + "name": "deployment", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query deployment($id: String!) {\n deployment(id: $id) {\n __typename\n canRedeploy\n canRollback\n createdAt\n # creator\n # environment\n environmentId\n id\n meta\n projectId\n # service\n serviceId\n snapshotId\n staticUrl\n status\n suggestAddServiceDomain\n url\n }\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Find a single deployment" + }, + "response": [] + }, + { + "name": "deploymentLogs", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query deploymentLogs($deploymentId: String!, $endDate: DateTime, $filter: String, $limit: Int, $startDate: DateTime) {\n deploymentLogs(\n deploymentId: $deploymentId\n endDate: $endDate\n filter: $filter\n limit: $limit\n startDate: $startDate\n ) {\n __typename\n # attributes # The attributes that were parsed from a structured log\n message # The contents of the log message\n severity # The severity of the log message (eg. err)\n # tags # The tags that were associated with the log\n timestamp # The timestamp of the log message in format RFC3339 (nano)\n }\n}", + "variables": "{\n\t\"deploymentId\": null,\n\t\"endDate\": null,\n\t\"filter\": null,\n\t\"limit\": null,\n\t\"startDate\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Fetch logs for a deployment" + }, + "response": [] + }, + { + "name": "deploymentTriggers", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query deploymentTriggers($after: String, $before: String, $environmentId: String!, $first: Int, $last: Int, $projectId: String!, $serviceId: String!) {\n deploymentTriggers(\n after: $after\n before: $before\n environmentId: $environmentId\n first: $first\n last: $last\n projectId: $projectId\n serviceId: $serviceId\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"environmentId\": null,\n\t\"first\": null,\n\t\"last\": null,\n\t\"projectId\": null,\n\t\"serviceId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "All deployment triggers." + }, + "response": [] + }, + { + "name": "deployments", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query deployments($after: String, $before: String, $first: Int, $input: DeploymentListInput!, $last: Int) {\n deployments(\n after: $after\n before: $before\n first: $first\n input: $input\n last: $last\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"input\": null,\n\t\"last\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get all deployments" + }, + "response": [] + }, + { + "name": "domainStatus", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query domainStatus($id: String!, $projectId: String!) {\n domainStatus(id: $id, projectId: $projectId) {\n __typename\n cdnProvider\n certificateStatus\n # certificates\n # dnsRecords\n # domain\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Domain with status" + }, + "response": [] + }, + { + "name": "domains", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query domains($environmentId: String!, $projectId: String!, $serviceId: String!) {\n domains(\n environmentId: $environmentId\n projectId: $projectId\n serviceId: $serviceId\n ) {\n __typename\n # customDomains\n # serviceDomains\n }\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"projectId\": null,\n\t\"serviceId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "All domains for a service instance" + }, + "response": [] + }, + { + "name": "environment", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query environment($id: String!) {\n environment(id: $id) {\n __typename\n # changes # [Experimental] Returns the diff between this environment and its parent one.\n createdAt\n deletedAt\n # deploymentTriggers\n # deployments\n id\n isEphemeral\n # meta\n name\n projectId\n # serviceInstances\n # sourceEnvironment\n unmergedChangesCount\n updatedAt\n # variables\n }\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Find a single environment" + }, + "response": [] + }, + { + "name": "environments", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query environments($after: String, $before: String, $first: Int, $isEphemeral: Boolean, $last: Int, $projectId: String!) {\n environments(\n after: $after\n before: $before\n first: $first\n isEphemeral: $isEphemeral\n last: $last\n projectId: $projectId\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"isEphemeral\": null,\n\t\"last\": null,\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets all environments for a project." + }, + "response": [] + }, + { + "name": "estimatedUsage", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query estimatedUsage($includeDeleted: Boolean, $measurements: [MetricMeasurement!]!, $projectId: String, $teamId: String, $userId: String) {\n estimatedUsage(\n includeDeleted: $includeDeleted\n measurements: $measurements\n projectId: $projectId\n teamId: $teamId\n userId: $userId\n ) {\n __typename\n estimatedValue # The estimated value.\n measurement # The measurement that was estimated.\n projectId\n }\n}", + "variables": "{\n\t\"includeDeleted\": null,\n\t\"measurements\": [null],\n\t\"projectId\": null,\n\t\"teamId\": null,\n\t\"userId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get the estimated total cost of the project at the end of the current billing cycle" + }, + "response": [] + }, + { + "name": "events", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query events($after: String, $before: String, $environmentId: String, $first: Int, $last: Int, $projectId: String!) {\n events(\n after: $after\n before: $before\n environmentId: $environmentId\n first: $first\n last: $last\n projectId: $projectId\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"environmentId\": null,\n\t\"first\": null,\n\t\"last\": null,\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets the events for a project." + }, + "response": [] + }, + { + "name": "githubIsRepoNameAvailable", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query githubIsRepoNameAvailable($fullRepoName: String!) {\n githubIsRepoNameAvailable(fullRepoName: $fullRepoName)\n}", + "variables": "{\n\t\"fullRepoName\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Check if a repo name is available" + }, + "response": [] + }, + { + "name": "githubRepoBranches", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query githubRepoBranches($owner: String!, $repo: String!) {\n githubRepoBranches(owner: $owner, repo: $repo) {\n __typename\n name\n }\n}", + "variables": "{\n\t\"owner\": null,\n\t\"repo\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get branches for a GitHub repo that the authenticated user has access to" + }, + "response": [] + }, + { + "name": "githubRepos", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query githubRepos {\n githubRepos {\n __typename\n defaultBranch\n fullName\n id\n installationId\n isPrivate\n name\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a list of repos for a user that Railway has access to" + }, + "response": [] + }, + { + "name": "githubWritableScopes", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query githubWritableScopes {\n githubWritableScopes\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a list of scopes the user has installed the installation to" + }, + "response": [] + }, + { + "name": "herokuApps", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query herokuApps {\n herokuApps {\n __typename\n id\n name\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get the Herokus apps for the current user" + }, + "response": [] + }, + { + "name": "integrationAuth", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query integrationAuth($provider: String!, $providerId: String!) {\n integrationAuth(provider: $provider, providerId: $providerId) {\n __typename\n id\n # integrations\n provider\n providerId\n }\n}", + "variables": "{\n\t\"provider\": null,\n\t\"providerId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get an integration auth by provider providerId" + }, + "response": [] + }, + { + "name": "integrationAuths", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query integrationAuths($after: String, $before: String, $first: Int, $last: Int) {\n integrationAuths(after: $after, before: $before, first: $first, last: $last) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"last\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get all integration auths for a user" + }, + "response": [] + }, + { + "name": "integrations", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query integrations($after: String, $before: String, $first: Int, $last: Int, $projectId: String!) {\n integrations(\n after: $after\n before: $before\n first: $first\n last: $last\n projectId: $projectId\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"last\": null,\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get all integrations for a project" + }, + "response": [] + }, + { + "name": "inviteCode", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query inviteCode($code: String!) {\n inviteCode(code: $code) {\n __typename\n code\n createdAt\n id\n # project\n projectId\n role\n }\n}", + "variables": "{\n\t\"code\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get an invite code by the code" + }, + "response": [] + }, + { + "name": "me", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query me {\n me {\n __typename\n agreedFairUse\n avatar\n banReason\n # cost\n createdAt\n # customer\n email\n featureFlags\n flags\n has2FA\n id\n isAdmin\n isDevPlan\n isEligibleForFreeHobbyPlan\n isOnHobbyPlan\n isVerified\n lastLogin\n name\n # projects\n # providerAuths\n # referredUsers\n registrationStatus\n riskLevel\n # teams\n termsAgreedOn\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets the authenticated user." + }, + "response": [] + }, + { + "name": "metrics", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query metrics($averagingWindowSeconds: Int, $endDate: DateTime, $environmentId: String, $groupBy: [MetricTag]!, $includeDeleted: Boolean, $measurements: [MetricMeasurement!]!, $pluginId: String, $projectId: String, $sampleRateSeconds: Int, $serviceId: String, $startDate: DateTime!, $teamId: String, $userId: String, $volumeId: String) {\n metrics(\n averagingWindowSeconds: $averagingWindowSeconds\n endDate: $endDate\n environmentId: $environmentId\n groupBy: $groupBy\n includeDeleted: $includeDeleted\n measurements: $measurements\n pluginId: $pluginId\n projectId: $projectId\n sampleRateSeconds: $sampleRateSeconds\n serviceId: $serviceId\n startDate: $startDate\n teamId: $teamId\n userId: $userId\n volumeId: $volumeId\n ) {\n __typename\n measurement # The measurement of the metric.\n # tags # The tags that were used to group the metric. Only the tags that were used to by will be present.\n # values # The samples of the metric.\n }\n}", + "variables": "{\n\t\"averagingWindowSeconds\": null,\n\t\"endDate\": null,\n\t\"environmentId\": null,\n\t\"groupBy\": [null],\n\t\"includeDeleted\": null,\n\t\"measurements\": [null],\n\t\"pluginId\": null,\n\t\"projectId\": null,\n\t\"sampleRateSeconds\": null,\n\t\"serviceId\": null,\n\t\"startDate\": null,\n\t\"teamId\": null,\n\t\"userId\": null,\n\t\"volumeId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get metrics for a project, environment, and service" + }, + "response": [] + }, + { + "name": "node", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query node($id: ID!) {\n node(id: $id) {\n __typename\n id\n }\n}", + "variables": "{\n\t\"id\": \"0\"\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "" + }, + "response": [] + }, + { + "name": "nodes", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query nodes($ids: [ID!]!) {\n nodes(ids: $ids) {\n __typename\n id\n }\n}", + "variables": "{\n\t\"ids\": [\"0\"]\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "" + }, + "response": [] + }, + { + "name": "plainCustomerIdForDiscordId", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query plainCustomerIdForDiscordId($discordId: String!) {\n plainCustomerIdForDiscordId(discordId: $discordId)\n}", + "variables": "{\n\t\"discordId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a user's Plain Customer ID given their Discord ID." + }, + "response": [] + }, + { + "name": "plainJWTForDiscordId", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query plainJWTForDiscordId($discordId: String!) {\n plainJWTForDiscordId(discordId: $discordId)\n}", + "variables": "{\n\t\"discordId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a user JWT token for a Discord id" + }, + "response": [] + }, + { + "name": "platformStatus", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query platformStatus {\n platformStatus {\n __typename\n # incident\n isStable\n # maintenance\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get the current status of the platform" + }, + "response": [] + }, + { + "name": "plugin", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query plugin($id: String!) {\n plugin(id: $id) {\n __typename\n # containers\n createdAt\n deletedAt\n friendlyName\n id\n logsEnabled\n name\n # project\n status\n # variables\n }\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a plugin by ID." + }, + "response": [] + }, + { + "name": "pluginLogs", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query pluginLogs($endDate: DateTime, $environmentId: String!, $filter: String, $limit: Int, $pluginId: String!, $startDate: DateTime) {\n pluginLogs(\n endDate: $endDate\n environmentId: $environmentId\n filter: $filter\n limit: $limit\n pluginId: $pluginId\n startDate: $startDate\n ) {\n __typename\n # attributes # The attributes that were parsed from a structured log\n message # The contents of the log message\n severity # The severity of the log message (eg. err)\n # tags # The tags that were associated with the log\n timestamp # The timestamp of the log message in format RFC3339 (nano)\n }\n}", + "variables": "{\n\t\"endDate\": null,\n\t\"environmentId\": null,\n\t\"filter\": null,\n\t\"limit\": null,\n\t\"pluginId\": null,\n\t\"startDate\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Fetch logs for a plugin" + }, + "response": [] + }, + { + "name": "preferences", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query preferences($token: String) {\n preferences(token: $token) {\n __typename\n buildFailedEmail\n changelogEmail\n deployCrashedEmail\n id\n marketingEmail\n usageEmail\n }\n}", + "variables": "{\n\t\"token\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get the email preferences for a user" + }, + "response": [] + }, + { + "name": "privateNetworkEndpoint", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query privateNetworkEndpoint($environmentId: String!, $privateNetworkId: String!, $serviceId: String!) {\n privateNetworkEndpoint(\n environmentId: $environmentId\n privateNetworkId: $privateNetworkId\n serviceId: $serviceId\n ) {\n __typename\n createdAt\n deletedAt\n dnsName\n privateIps\n publicId\n serviceInstanceId\n tags\n }\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"privateNetworkId\": null,\n\t\"serviceId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a private network endpoint for a service instance." + }, + "response": [] + }, + { + "name": "privateNetworkEndpointNameAvailable", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query privateNetworkEndpointNameAvailable($environmentId: String!, $prefix: String!, $privateNetworkId: String!) {\n privateNetworkEndpointNameAvailable(\n environmentId: $environmentId\n prefix: $prefix\n privateNetworkId: $privateNetworkId\n )\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"prefix\": null,\n\t\"privateNetworkId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Check if an endpoint name is available." + }, + "response": [] + }, + { + "name": "privateNetworks", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query privateNetworks($environmentId: String!) {\n privateNetworks(environmentId: $environmentId) {\n __typename\n createdAt\n deletedAt\n dnsName\n environmentId\n name\n networkId\n projectId\n publicId\n tags\n }\n}", + "variables": "{\n\t\"environmentId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "List private networks for an environment." + }, + "response": [] + }, + { + "name": "project", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query project($id: String!) {\n project(id: $id) {\n __typename\n # baseEnvironment\n createdAt\n deletedAt\n # deploymentTriggers\n # deployments\n description\n # environments\n expiredAt\n id\n isPublic\n isTempProject\n isUpdatable\n # members\n name\n # plugins\n prDeploys\n prForks\n # projectPermissions\n # services\n subscriptionType\n # team\n teamId\n updatedAt\n upstreamUrl\n # volumes\n # webhooks\n }\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a project by ID" + }, + "response": [] + }, + { + "name": "projectInviteCode", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query projectInviteCode($projectId: String!, $role: ProjectRole!) {\n projectInviteCode(projectId: $projectId, role: $role) {\n __typename\n code\n createdAt\n id\n # project\n projectId\n role\n }\n}", + "variables": "{\n\t\"projectId\": null,\n\t\"role\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get an invite code for a project for a specifc role" + }, + "response": [] + }, + { + "name": "projectMembers", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query projectMembers($projectId: String!) {\n projectMembers(projectId: $projectId) {\n __typename\n avatar\n email\n id\n name\n role\n }\n}", + "variables": "{\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets users who belong to a project along with their role" + }, + "response": [] + }, + { + "name": "projectResourceAccess", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query projectResourceAccess($projectId: String!) {\n projectResourceAccess(projectId: $projectId) {\n __typename\n # customDomain\n # deployment\n # environment\n # plugin\n }\n}", + "variables": "{\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get resource access rules for project-specific actions" + }, + "response": [] + }, + { + "name": "projectToken", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query projectToken {\n projectToken {\n __typename\n createdAt\n displayToken\n # environment\n environmentId\n id\n name\n # project\n projectId\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a single project token by the value in the header" + }, + "response": [] + }, + { + "name": "projectTokens", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query projectTokens($after: String, $before: String, $first: Int, $last: Int, $projectId: String!) {\n projectTokens(\n after: $after\n before: $before\n first: $first\n last: $last\n projectId: $projectId\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"last\": null,\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get all project tokens for a project" + }, + "response": [] + }, + { + "name": "projects", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query projects($after: String, $before: String, $first: Int, $includeDeleted: Boolean, $last: Int, $teamId: String, $userId: String) {\n projects(\n after: $after\n before: $before\n first: $first\n includeDeleted: $includeDeleted\n last: $last\n teamId: $teamId\n userId: $userId\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"includeDeleted\": null,\n\t\"last\": null,\n\t\"teamId\": null,\n\t\"userId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets all projects for a user or a team." + }, + "response": [] + }, + { + "name": "publicStats", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query publicStats {\n publicStats {\n __typename\n totalDeployments\n totalProjects\n totalUsers\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get public Railway stats. Primarily used for the landing page." + }, + "response": [] + }, + { + "name": "referralInfo", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query referralInfo {\n referralInfo {\n __typename\n code\n id\n # referralStats\n status\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets the ReferralInfo for the authenticated user." + }, + "response": [] + }, + { + "name": "regions", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query regions {\n regions {\n __typename\n name\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "List available regions" + }, + "response": [] + }, + { + "name": "resourceAccess", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query resourceAccess($explicitResourceOwner: ExplicitOwnerInput) {\n resourceAccess(explicitResourceOwner: $explicitResourceOwner) {\n __typename\n # project\n }\n}", + "variables": "{\n\t\"explicitResourceOwner\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get resource access for the current user or team" + }, + "response": [] + }, + { + "name": "service", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query service($id: String!) {\n service(id: $id) {\n __typename\n createdAt\n deletedAt\n # deployments\n icon\n id\n name\n # project\n projectId\n # repoTriggers\n # serviceInstances\n updatedAt\n }\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a service by ID" + }, + "response": [] + }, + { + "name": "serviceDomainAvailable", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query serviceDomainAvailable($domain: String!) {\n serviceDomainAvailable(domain: $domain) {\n __typename\n available\n message\n }\n}", + "variables": "{\n\t\"domain\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Checks if a service domain is available" + }, + "response": [] + }, + { + "name": "serviceInstance", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query serviceInstance($environmentId: String!, $serviceId: String!) {\n serviceInstance(environmentId: $environmentId, serviceId: $serviceId) {\n __typename\n buildCommand\n builder\n createdAt\n cronSchedule\n deletedAt\n # domains\n environmentId\n healthcheckPath\n healthcheckTimeout\n id\n isUpdatable\n nextCronRunAt\n nixpacksPlan\n numReplicas\n railwayConfigFile\n restartPolicyMaxRetries\n restartPolicyType\n rootDirectory\n serviceId\n sleepApplication\n # source\n startCommand\n updatedAt\n upstreamUrl\n watchPatterns\n }\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"serviceId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a service instance belonging to a service and environment" + }, + "response": [] + }, + { + "name": "serviceInstanceIsUpdatable", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query serviceInstanceIsUpdatable($environmentId: String!, $serviceId: String!) {\n serviceInstanceIsUpdatable(environmentId: $environmentId, serviceId: $serviceId)\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"serviceId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Check if the upstream repo for a service has an update available" + }, + "response": [] + }, + { + "name": "sessions", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query sessions($after: String, $before: String, $first: Int, $last: Int) {\n sessions(after: $after, before: $before, first: $first, last: $last) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"last\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets all sessions for authenticated user." + }, + "response": [] + }, + { + "name": "team", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query team($id: String!) {\n team(id: $id) {\n __typename\n avatar\n banReason\n createdAt\n # customer\n discordRole\n id\n isEligibleForDirectSupport\n # members\n name\n # projects\n # teamPermissions\n updatedAt\n }\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Find a team by ID" + }, + "response": [] + }, + { + "name": "teamByCode", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query teamByCode($code: String!) {\n teamByCode(code: $code) {\n __typename\n avatar\n banReason\n createdAt\n # customer\n discordRole\n id\n isEligibleForDirectSupport\n # members\n name\n # projects\n # teamPermissions\n updatedAt\n }\n}", + "variables": "{\n\t\"code\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Find a team by invite code" + }, + "response": [] + }, + { + "name": "teamDirectSupportDiscordInfoForDiscordId", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query teamDirectSupportDiscordInfoForDiscordId($discordId: String!) {\n teamDirectSupportDiscordInfoForDiscordId(discordId: $discordId) {\n __typename\n memberDiscordIds\n teamId\n teamName\n }\n}", + "variables": "{\n\t\"discordId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Fetch Discord info associated with Direct Support-eligible team members, given a Discord UID" + }, + "response": [] + }, + { + "name": "teamTemplates", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query teamTemplates($after: String, $before: String, $first: Int, $last: Int, $teamId: String!) {\n teamTemplates(\n after: $after\n before: $before\n first: $first\n last: $last\n teamId: $teamId\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"last\": null,\n\t\"teamId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get all templates for a team." + }, + "response": [] + }, + { + "name": "template", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query template($code: String, $owner: String, $repo: String) {\n template(code: $code, owner: $owner, repo: $repo) {\n __typename\n activeProjects\n code\n config\n createdAt\n # creator\n demoProjectId\n id\n isApproved\n metadata\n projects\n # services\n # similarTemplates\n status\n teamId\n totalPayout\n userId\n }\n}", + "variables": "{\n\t\"code\": null,\n\t\"owner\": null,\n\t\"repo\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a template by code or GitHub owner and repo." + }, + "response": [] + }, + { + "name": "templateFromHerokuTemplate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query templateFromHerokuTemplate($repoUrl: String!) {\n templateFromHerokuTemplate(repoUrl: $repoUrl)\n}", + "variables": "{\n\t\"repoUrl\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Convert a Heroku template to a (legacy) Railway template config object." + }, + "response": [] + }, + { + "name": "templateReadme", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query templateReadme($code: String!) {\n templateReadme(code: $code) {\n __typename\n description\n name\n readmeContent\n }\n}", + "variables": "{\n\t\"code\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets the README for a template." + }, + "response": [] + }, + { + "name": "templateSourceForProject", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query templateSourceForProject($projectId: String!) {\n templateSourceForProject(projectId: $projectId) {\n __typename\n activeProjects\n code\n config\n createdAt\n # creator\n demoProjectId\n id\n isApproved\n metadata\n projects\n # services\n # similarTemplates\n status\n teamId\n totalPayout\n userId\n }\n}", + "variables": "{\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get the source template for a project." + }, + "response": [] + }, + { + "name": "templates", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query templates($after: String, $before: String, $first: Int, $last: Int, $recommended: Boolean) {\n templates(\n after: $after\n before: $before\n first: $first\n last: $last\n recommended: $recommended\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"last\": null,\n\t\"recommended\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get all published templates." + }, + "response": [] + }, + { + "name": "twoFactorInfo", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query twoFactorInfo {\n twoFactorInfo {\n __typename\n hasRecoveryCodes\n isVerified\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets the TwoFactorInfo for the authenticated user." + }, + "response": [] + }, + { + "name": "usage", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query usage($endDate: DateTime, $groupBy: [MetricTag]!, $includeDeleted: Boolean, $measurements: [MetricMeasurement!]!, $projectId: String, $startDate: DateTime, $teamId: String, $userId: String) {\n usage(\n endDate: $endDate\n groupBy: $groupBy\n includeDeleted: $includeDeleted\n measurements: $measurements\n projectId: $projectId\n startDate: $startDate\n teamId: $teamId\n userId: $userId\n ) {\n __typename\n measurement # The measurement that was aggregated.\n # tags # The tags that were used to group the metric. Only the tags that were used in the `groupBy` will be present.\n value # The aggregated value.\n }\n}", + "variables": "{\n\t\"endDate\": null,\n\t\"groupBy\": [null],\n\t\"includeDeleted\": null,\n\t\"measurements\": [null],\n\t\"projectId\": null,\n\t\"startDate\": null,\n\t\"teamId\": null,\n\t\"userId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get the usage for a single project or all projects for a user/team. If no `projectId` or `teamId` is provided, the usage for the current user is returned." + }, + "response": [] + }, + { + "name": "userIdForDiscordId", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query userIdForDiscordId($discordId: String!) {\n userIdForDiscordId(discordId: $discordId)\n}", + "variables": "{\n\t\"discordId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get the user id corresponding to a Discord id" + }, + "response": [] + }, + { + "name": "userTemplates", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query userTemplates($after: String, $before: String, $first: Int, $last: Int) {\n userTemplates(after: $after, before: $before, first: $first, last: $last) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"last\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get all templates for the current user." + }, + "response": [] + }, + { + "name": "variables", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query variables($environmentId: String!, $pluginId: String, $projectId: String!, $serviceId: String, $unrendered: Boolean) {\n variables(\n environmentId: $environmentId\n pluginId: $pluginId\n projectId: $projectId\n serviceId: $serviceId\n unrendered: $unrendered\n )\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"pluginId\": null,\n\t\"projectId\": null,\n\t\"serviceId\": null,\n\t\"unrendered\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "All variables by pluginId or serviceId. If neither are provided, all shared variables are returned." + }, + "response": [] + }, + { + "name": "variablesForServiceDeployment", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query variablesForServiceDeployment($environmentId: String!, $projectId: String!, $serviceId: String!) {\n variablesForServiceDeployment(\n environmentId: $environmentId\n projectId: $projectId\n serviceId: $serviceId\n )\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"projectId\": null,\n\t\"serviceId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "All rendered variables that are required for a service deployment." + }, + "response": [] + }, + { + "name": "vercelInfo", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query vercelInfo {\n vercelInfo {\n __typename\n # accounts\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get information about the user's Vercel accounts" + }, + "response": [] + }, + { + "name": "webhooks", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query webhooks($after: String, $before: String, $first: Int, $last: Int, $projectId: String!) {\n webhooks(\n after: $after\n before: $before\n first: $first\n last: $last\n projectId: $projectId\n ) {\n __typename\n # edges\n # pageInfo\n }\n}", + "variables": "{\n\t\"after\": null,\n\t\"before\": null,\n\t\"first\": null,\n\t\"last\": null,\n\t\"projectId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get all webhooks for a project" + }, + "response": [] + }, + { + "name": "workflowStatus", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query workflowStatus($projectId: String, $workflowId: String!) {\n workflowStatus(projectId: $projectId, workflowId: $workflowId) {\n __typename\n status\n }\n}", + "variables": "{\n\t\"projectId\": null,\n\t\"workflowId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Gets the status of a workflow" + }, + "response": [] + } + ] + }, + { + "name": "Mutations", + "item": [ + { + "name": "apiTokenCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation apiTokenCreate($input: ApiTokenCreateInput!) {\n apiTokenCreate(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Creates a new API token." + }, + "response": [] + }, + { + "name": "apiTokenDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation apiTokenDelete($id: String!) {\n apiTokenDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes an API token." + }, + "response": [] + }, + { + "name": "baseEnvironmentOverride", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation baseEnvironmentOverride($id: String!, $input: BaseEnvironmentOverrideInput!) {\n baseEnvironmentOverride(id: $id, input: $input)\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Sets the base environment override for a deployment trigger." + }, + "response": [] + }, + { + "name": "customDomainCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation customDomainCreate($input: CustomDomainCreateInput!) {\n customDomainCreate(input: $input) {\n __typename\n # cnameCheck\n createdAt\n deletedAt\n domain\n environmentId\n id\n serviceId\n # status\n updatedAt\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Creates a new custom domain." + }, + "response": [] + }, + { + "name": "customDomainDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation customDomainDelete($id: String!) {\n customDomainDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a custom domain." + }, + "response": [] + }, + { + "name": "customerMigrateToHobbyPlan", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation customerMigrateToHobbyPlan($id: String!) {\n customerMigrateToHobbyPlan(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Migrate a customer to the hobby plan" + }, + "response": [] + }, + { + "name": "deploymentCancel", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation deploymentCancel($id: String!) {\n deploymentCancel(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Cancels a deployment." + }, + "response": [] + }, + { + "name": "deploymentRedeploy", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation deploymentRedeploy($id: String!) {\n deploymentRedeploy(id: $id) {\n __typename\n canRedeploy\n canRollback\n createdAt\n # creator\n # environment\n environmentId\n id\n meta\n projectId\n # service\n serviceId\n snapshotId\n staticUrl\n status\n suggestAddServiceDomain\n url\n }\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Redeploys a deployment." + }, + "response": [] + }, + { + "name": "deploymentRemove", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation deploymentRemove($id: String!) {\n deploymentRemove(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Removes a deployment." + }, + "response": [] + }, + { + "name": "deploymentRestart", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation deploymentRestart($id: String!) {\n deploymentRestart(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Restarts a deployment." + }, + "response": [] + }, + { + "name": "deploymentRollback", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation deploymentRollback($id: String!) {\n deploymentRollback(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Rolls back to a deployment." + }, + "response": [] + }, + { + "name": "deploymentTriggerCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation deploymentTriggerCreate($input: DeploymentTriggerCreateInput!) {\n deploymentTriggerCreate(input: $input) {\n __typename\n baseEnvironmentOverrideId\n branch\n checkSuites\n environmentId\n id\n projectId\n provider\n repository\n serviceId\n validCheckSuites\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Creates a deployment trigger." + }, + "response": [] + }, + { + "name": "deploymentTriggerDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation deploymentTriggerDelete($id: String!) {\n deploymentTriggerDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a deployment trigger." + }, + "response": [] + }, + { + "name": "deploymentTriggerUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation deploymentTriggerUpdate($id: String!, $input: DeploymentTriggerUpdateInput!) {\n deploymentTriggerUpdate(id: $id, input: $input) {\n __typename\n baseEnvironmentOverrideId\n branch\n checkSuites\n environmentId\n id\n projectId\n provider\n repository\n serviceId\n validCheckSuites\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Updates a deployment trigger." + }, + "response": [] + }, + { + "name": "emailChangeConfirm", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation emailChangeConfirm($nonce: String!) {\n emailChangeConfirm(nonce: $nonce)\n}", + "variables": "{\n\t\"nonce\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Change the User's account email if there is a valid change email request." + }, + "response": [] + }, + { + "name": "emailChangeInitiate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation emailChangeInitiate($newEmail: String!) {\n emailChangeInitiate(newEmail: $newEmail)\n}", + "variables": "{\n\t\"newEmail\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Initiate an email change request for a user" + }, + "response": [] + }, + { + "name": "environmentCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation environmentCreate($input: EnvironmentCreateInput!) {\n environmentCreate(input: $input) {\n __typename\n # changes # [Experimental] Returns the diff between this environment and its parent one.\n createdAt\n deletedAt\n # deploymentTriggers\n # deployments\n id\n isEphemeral\n # meta\n name\n projectId\n # serviceInstances\n # sourceEnvironment\n unmergedChangesCount\n updatedAt\n # variables\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Creates a new environment." + }, + "response": [] + }, + { + "name": "environmentDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation environmentDelete($id: String!) {\n environmentDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes an environment." + }, + "response": [] + }, + { + "name": "environmentMerge", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation environmentMerge($changes: [MergeChange]!, $id: String!) {\n environmentMerge(changes: $changes, id: $id)\n}", + "variables": "{\n\t\"changes\": [null],\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "[Experimental] Merges the current environment with the parent one." + }, + "response": [] + }, + { + "name": "environmentTriggersDeploy", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation environmentTriggersDeploy($input: EnvironmentTriggersDeployInput!) {\n environmentTriggersDeploy(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deploys all connected triggers for an environment." + }, + "response": [] + }, + { + "name": "eventBatchTrack", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation eventBatchTrack($input: EventBatchTrackInput!) {\n eventBatchTrack(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Track a batch of events for authenticated user" + }, + "response": [] + }, + { + "name": "eventTrack", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation eventTrack($input: EventTrackInput!) {\n eventTrack(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Track event for authenticated user" + }, + "response": [] + }, + { + "name": "fairUseAgree", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation fairUseAgree($agree: Boolean!) {\n fairUseAgree(agree: $agree)\n}", + "variables": "{\n\t\"agree\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Agree to the fair use policy for the currently authenticated user" + }, + "response": [] + }, + { + "name": "githubRepoDeploy", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation githubRepoDeploy($input: GitHubRepoDeployInput!) {\n githubRepoDeploy(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deploys a GitHub repo" + }, + "response": [] + }, + { + "name": "githubRepoUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation githubRepoUpdate($input: GitHubRepoUpdateInput!) {\n githubRepoUpdate(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Updates a GitHub repo through the linked template" + }, + "response": [] + }, + { + "name": "herokuImportVariables", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation herokuImportVariables($input: HerokuImportVariablesInput!) {\n herokuImportVariables(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Import variables from a Heroku app into a Railway service. Returns the number of variables imports" + }, + "response": [] + }, + { + "name": "integrationCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation integrationCreate($input: IntegrationCreateInput!) {\n integrationCreate(input: $input) {\n __typename\n config\n id\n name\n projectId\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Create an integration for a project" + }, + "response": [] + }, + { + "name": "integrationDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation integrationDelete($id: String!) {\n integrationDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Delete an integration for a project" + }, + "response": [] + }, + { + "name": "integrationUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation integrationUpdate($id: String!, $input: IntegrationUpdateInput!) {\n integrationUpdate(id: $id, input: $input) {\n __typename\n config\n id\n name\n projectId\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Update an integration for a project" + }, + "response": [] + }, + { + "name": "inviteCodeUse", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation inviteCodeUse($code: String!) {\n inviteCodeUse(code: $code) {\n __typename\n # baseEnvironment\n createdAt\n deletedAt\n # deploymentTriggers\n # deployments\n description\n # environments\n expiredAt\n id\n isPublic\n isTempProject\n isUpdatable\n # members\n name\n # plugins\n prDeploys\n prForks\n # projectPermissions\n # services\n subscriptionType\n # team\n teamId\n updatedAt\n upstreamUrl\n # volumes\n # webhooks\n }\n}", + "variables": "{\n\t\"code\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Join a project using an invite code" + }, + "response": [] + }, + { + "name": "jobApplicationCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation jobApplicationCreate($input: JobApplicationCreateInput!) {\n jobApplicationCreate(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Creates a new job application." + }, + "response": [] + }, + { + "name": "loginSessionAuth", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation loginSessionAuth($input: LoginSessionAuthInput!) {\n loginSessionAuth(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Auth a login session for a user" + }, + "response": [] + }, + { + "name": "loginSessionCancel", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation loginSessionCancel($code: String!) {\n loginSessionCancel(code: $code)\n}", + "variables": "{\n\t\"code\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Cancel a login session" + }, + "response": [] + }, + { + "name": "loginSessionConsume", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation loginSessionConsume($code: String!) {\n loginSessionConsume(code: $code)\n}", + "variables": "{\n\t\"code\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get a token for a login session if it exists" + }, + "response": [] + }, + { + "name": "loginSessionCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation loginSessionCreate {\n loginSessionCreate\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Start a CLI login session" + }, + "response": [] + }, + { + "name": "loginSessionVerify", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation loginSessionVerify($code: String!) {\n loginSessionVerify(code: $code)\n}", + "variables": "{\n\t\"code\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Verify if a login session is valid" + }, + "response": [] + }, + { + "name": "logout", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation logout {\n logout\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes session for current user if it exists" + }, + "response": [] + }, + { + "name": "missingCommandAlert", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation missingCommandAlert($input: MissingCommandAlertInput!) {\n missingCommandAlert(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Alert the team of a missing command palette command" + }, + "response": [] + }, + { + "name": "pluginCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation pluginCreate($input: PluginCreateInput!) {\n pluginCreate(input: $input) {\n __typename\n # containers\n createdAt\n deletedAt\n friendlyName\n id\n logsEnabled\n name\n # project\n status\n # variables\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Creates a new plugin." + }, + "response": [] + }, + { + "name": "pluginDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation pluginDelete($environmentId: String, $id: String!) {\n pluginDelete(environmentId: $environmentId, id: $id)\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a plugin." + }, + "response": [] + }, + { + "name": "pluginReset", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation pluginReset($id: String!, $input: ResetPluginInput!) {\n pluginReset(id: $id, input: $input)\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Reset envs and container for a plugin in an environment" + }, + "response": [] + }, + { + "name": "pluginResetCredentials", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation pluginResetCredentials($id: String!, $input: ResetPluginCredentialsInput!) {\n pluginResetCredentials(id: $id, input: $input)\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Resets the credentials for a plugin in an environment" + }, + "response": [] + }, + { + "name": "pluginRestart", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation pluginRestart($id: String!, $input: PluginRestartInput!) {\n pluginRestart(id: $id, input: $input) {\n __typename\n # containers\n createdAt\n deletedAt\n friendlyName\n id\n logsEnabled\n name\n # project\n status\n # variables\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Restarts a plugin." + }, + "response": [] + }, + { + "name": "pluginUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation pluginUpdate($id: String!, $input: PluginUpdateInput!) {\n pluginUpdate(id: $id, input: $input) {\n __typename\n # containers\n createdAt\n deletedAt\n friendlyName\n id\n logsEnabled\n name\n # project\n status\n # variables\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Updates an existing plugin." + }, + "response": [] + }, + { + "name": "preferencesUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation preferencesUpdate($input: PreferencesUpdateData!) {\n preferencesUpdate(input: $input) {\n __typename\n buildFailedEmail\n changelogEmail\n deployCrashedEmail\n id\n marketingEmail\n usageEmail\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Update the email preferences for a user" + }, + "response": [] + }, + { + "name": "privateNetworkCreateOrGet", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation privateNetworkCreateOrGet($input: PrivateNetworkCreateOrGetInput!) {\n privateNetworkCreateOrGet(input: $input) {\n __typename\n createdAt\n deletedAt\n dnsName\n environmentId\n name\n networkId\n projectId\n publicId\n tags\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Create or get a private network." + }, + "response": [] + }, + { + "name": "privateNetworkEndpointCreateOrGet", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation privateNetworkEndpointCreateOrGet($input: PrivateNetworkEndpointCreateOrGetInput!) {\n privateNetworkEndpointCreateOrGet(input: $input) {\n __typename\n createdAt\n deletedAt\n dnsName\n privateIps\n publicId\n serviceInstanceId\n tags\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Create or get a private network endpoint." + }, + "response": [] + }, + { + "name": "privateNetworkEndpointDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation privateNetworkEndpointDelete($id: String!) {\n privateNetworkEndpointDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Delete a private network endpoint." + }, + "response": [] + }, + { + "name": "privateNetworkEndpointRename", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation privateNetworkEndpointRename($dnsName: String!, $id: String!, $privateNetworkId: String!) {\n privateNetworkEndpointRename(\n dnsName: $dnsName\n id: $id\n privateNetworkId: $privateNetworkId\n )\n}", + "variables": "{\n\t\"dnsName\": null,\n\t\"id\": null,\n\t\"privateNetworkId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Rename a private network endpoint." + }, + "response": [] + }, + { + "name": "privateNetworksForEnvironmentDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation privateNetworksForEnvironmentDelete($environmentId: String!) {\n privateNetworksForEnvironmentDelete(environmentId: $environmentId)\n}", + "variables": "{\n\t\"environmentId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Delete all private networks for an environment." + }, + "response": [] + }, + { + "name": "projectClaim", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectClaim($id: String!) {\n projectClaim(id: $id) {\n __typename\n # baseEnvironment\n createdAt\n deletedAt\n # deploymentTriggers\n # deployments\n description\n # environments\n expiredAt\n id\n isPublic\n isTempProject\n isUpdatable\n # members\n name\n # plugins\n prDeploys\n prForks\n # projectPermissions\n # services\n subscriptionType\n # team\n teamId\n updatedAt\n upstreamUrl\n # volumes\n # webhooks\n }\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Claims a project." + }, + "response": [] + }, + { + "name": "projectCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectCreate($input: ProjectCreateInput!) {\n projectCreate(input: $input) {\n __typename\n # baseEnvironment\n createdAt\n deletedAt\n # deploymentTriggers\n # deployments\n description\n # environments\n expiredAt\n id\n isPublic\n isTempProject\n isUpdatable\n # members\n name\n # plugins\n prDeploys\n prForks\n # projectPermissions\n # services\n subscriptionType\n # team\n teamId\n updatedAt\n upstreamUrl\n # volumes\n # webhooks\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Creates a new project." + }, + "response": [] + }, + { + "name": "projectDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectDelete($id: String!) {\n projectDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a project." + }, + "response": [] + }, + { + "name": "projectInviteUser", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectInviteUser($id: String!, $input: ProjectInviteUserInput!) {\n projectInviteUser(id: $id, input: $input)\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Invite a user by email to a project" + }, + "response": [] + }, + { + "name": "projectLeave", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectLeave($id: String!) {\n projectLeave(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Leave project as currently authenticated user" + }, + "response": [] + }, + { + "name": "projectMemberRemove", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectMemberRemove($input: ProjectMemberRemoveInput!) {\n projectMemberRemove(input: $input) {\n __typename\n avatar\n email\n id\n name\n role\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Remove user from a project" + }, + "response": [] + }, + { + "name": "projectMemberUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectMemberUpdate($input: ProjectMemberUpdateInput!) {\n projectMemberUpdate(input: $input) {\n __typename\n avatar\n email\n id\n name\n role\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Change the role for a user within a project" + }, + "response": [] + }, + { + "name": "projectTokenCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectTokenCreate($input: ProjectTokenCreateInput!) {\n projectTokenCreate(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Create a token for a project that has access to a specific environment" + }, + "response": [] + }, + { + "name": "projectTokenDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectTokenDelete($id: String!) {\n projectTokenDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Delete a project token" + }, + "response": [] + }, + { + "name": "projectTransferConfirm", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectTransferConfirm($input: ProjectTransferConfirmInput!) {\n projectTransferConfirm(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Confirm the transfer of project ownership" + }, + "response": [] + }, + { + "name": "projectTransferInitiate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectTransferInitiate($input: ProjectTransferInitiateInput!) {\n projectTransferInitiate(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Initiate the transfer of project ownership" + }, + "response": [] + }, + { + "name": "projectTransferToTeam", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectTransferToTeam($id: String!, $input: ProjectTransferToTeamInput!) {\n projectTransferToTeam(id: $id, input: $input)\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Transfer a project to a team" + }, + "response": [] + }, + { + "name": "projectTransferToUser", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectTransferToUser($id: String!) {\n projectTransferToUser(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Transfer a project to a user" + }, + "response": [] + }, + { + "name": "projectUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectUpdate($id: String!, $input: ProjectUpdateInput!) {\n projectUpdate(id: $id, input: $input) {\n __typename\n # baseEnvironment\n createdAt\n deletedAt\n # deploymentTriggers\n # deployments\n description\n # environments\n expiredAt\n id\n isPublic\n isTempProject\n isUpdatable\n # members\n name\n # plugins\n prDeploys\n prForks\n # projectPermissions\n # services\n subscriptionType\n # team\n teamId\n updatedAt\n upstreamUrl\n # volumes\n # webhooks\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Updates a project." + }, + "response": [] + }, + { + "name": "providerAuthRemove", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation providerAuthRemove($id: String!) {\n providerAuthRemove(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a ProviderAuth." + }, + "response": [] + }, + { + "name": "recoveryCodeGenerate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation recoveryCodeGenerate {\n recoveryCodeGenerate {\n __typename\n recoveryCodes\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Generates a new set of recovery codes for the authenticated user." + }, + "response": [] + }, + { + "name": "recoveryCodeValidate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation recoveryCodeValidate($input: RecoveryCodeValidateInput!) {\n recoveryCodeValidate(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Validates a recovery code." + }, + "response": [] + }, + { + "name": "referralInfoUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation referralInfoUpdate($input: ReferralInfoUpdateInput!) {\n referralInfoUpdate(input: $input) {\n __typename\n code\n id\n # referralStats\n status\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Updates the ReferralInfo for the authenticated user." + }, + "response": [] + }, + { + "name": "serviceConnect", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceConnect($id: String!, $input: ServiceConnectInput!) {\n serviceConnect(id: $id, input: $input) {\n __typename\n createdAt\n deletedAt\n # deployments\n icon\n id\n name\n # project\n projectId\n # repoTriggers\n # serviceInstances\n updatedAt\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Connect a service to a source" + }, + "response": [] + }, + { + "name": "serviceCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceCreate($input: ServiceCreateInput!) {\n serviceCreate(input: $input) {\n __typename\n createdAt\n deletedAt\n # deployments\n icon\n id\n name\n # project\n projectId\n # repoTriggers\n # serviceInstances\n updatedAt\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Creates a new service." + }, + "response": [] + }, + { + "name": "serviceDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceDelete($environmentId: String, $id: String!) {\n serviceDelete(environmentId: $environmentId, id: $id)\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a service." + }, + "response": [] + }, + { + "name": "serviceDisconnect", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceDisconnect($id: String!) {\n serviceDisconnect(id: $id) {\n __typename\n createdAt\n deletedAt\n # deployments\n icon\n id\n name\n # project\n projectId\n # repoTriggers\n # serviceInstances\n updatedAt\n }\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Disconnect a service from a repo" + }, + "response": [] + }, + { + "name": "serviceDomainCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceDomainCreate($input: ServiceDomainCreateInput!) {\n serviceDomainCreate(input: $input) {\n __typename\n createdAt\n deletedAt\n domain\n environmentId\n id\n serviceId\n suffix\n updatedAt\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Creates a new service domain." + }, + "response": [] + }, + { + "name": "serviceDomainDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceDomainDelete($id: String!) {\n serviceDomainDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a service domain." + }, + "response": [] + }, + { + "name": "serviceDomainUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceDomainUpdate($input: ServiceDomainUpdateInput!) {\n serviceDomainUpdate(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Updates a service domain." + }, + "response": [] + }, + { + "name": "serviceInstanceRedeploy", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceInstanceRedeploy($environmentId: String!, $serviceId: String!) {\n serviceInstanceRedeploy(environmentId: $environmentId, serviceId: $serviceId)\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"serviceId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Redeploy a service instance" + }, + "response": [] + }, + { + "name": "serviceInstanceUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceInstanceUpdate($environmentId: String, $input: ServiceInstanceUpdateInput!, $serviceId: String!) {\n serviceInstanceUpdate(\n environmentId: $environmentId\n input: $input\n serviceId: $serviceId\n )\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"input\": null,\n\t\"serviceId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Update a service instance" + }, + "response": [] + }, + { + "name": "serviceRemoveUpstreamUrl", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceRemoveUpstreamUrl($id: String!) {\n serviceRemoveUpstreamUrl(id: $id) {\n __typename\n createdAt\n deletedAt\n # deployments\n icon\n id\n name\n # project\n projectId\n # repoTriggers\n # serviceInstances\n updatedAt\n }\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Remove the upstream URL from all service instances for this service" + }, + "response": [] + }, + { + "name": "serviceUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation serviceUpdate($id: String!, $input: ServiceUpdateInput!) {\n serviceUpdate(id: $id, input: $input) {\n __typename\n createdAt\n deletedAt\n # deployments\n icon\n id\n name\n # project\n projectId\n # repoTriggers\n # serviceInstances\n updatedAt\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Updates a service." + }, + "response": [] + }, + { + "name": "sessionDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation sessionDelete($id: String!) {\n sessionDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a session." + }, + "response": [] + }, + { + "name": "sharedVariableConfigure", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation sharedVariableConfigure($input: SharedVariableConfigureInput!) {\n sharedVariableConfigure(input: $input) {\n __typename\n createdAt\n # environment\n environmentId\n id\n name\n # plugin\n pluginId\n references\n # service\n serviceId\n updatedAt\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Configure a shared variable." + }, + "response": [] + }, + { + "name": "tcpProxyDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation tcpProxyDelete($id: String!) {\n tcpProxyDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a TCP proxy by id" + }, + "response": [] + }, + { + "name": "teamBulkProjectTransfer", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamBulkProjectTransfer($input: TeamBulkProjectTransferInput!) {\n teamBulkProjectTransfer(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Bulk transfer projects from user to team" + }, + "response": [] + }, + { + "name": "teamCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamCreate($input: TeamCreateInput!) {\n teamCreate(input: $input) {\n __typename\n avatar\n banReason\n createdAt\n # customer\n discordRole\n id\n isEligibleForDirectSupport\n # members\n name\n # projects\n # teamPermissions\n updatedAt\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Create a team" + }, + "response": [] + }, + { + "name": "teamCreateAndSubscribe", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamCreateAndSubscribe($input: TeamCreateAndSubscribeInput!) {\n teamCreateAndSubscribe(input: $input) {\n __typename\n customerId\n paymentIntent\n teamId\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Create a team and subscribe to the Pro plan" + }, + "response": [] + }, + { + "name": "teamDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamDelete($id: String!) {\n teamDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Delete a team and all data associated with it" + }, + "response": [] + }, + { + "name": "teamInviteCodeCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamInviteCodeCreate($id: String!, $input: TeamInviteCodeCreateInput!) {\n teamInviteCodeCreate(id: $id, input: $input)\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Get an invite code for a team and role" + }, + "response": [] + }, + { + "name": "teamInviteCodeUse", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamInviteCodeUse($code: String!) {\n teamInviteCodeUse(code: $code) {\n __typename\n avatar\n banReason\n createdAt\n # customer\n discordRole\n id\n isEligibleForDirectSupport\n # members\n name\n # projects\n # teamPermissions\n updatedAt\n }\n}", + "variables": "{\n\t\"code\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Use an invite code to join a team" + }, + "response": [] + }, + { + "name": "teamLeave", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamLeave($id: String!) {\n teamLeave(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Leave a team" + }, + "response": [] + }, + { + "name": "teamPermissionChange", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamPermissionChange($input: TeamPermissionChangeInput!) {\n teamPermissionChange(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Changes a user team permissions." + }, + "response": [] + }, + { + "name": "teamUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamUpdate($id: String!, $input: TeamUpdateInput!) {\n teamUpdate(id: $id, input: $input) {\n __typename\n avatar\n banReason\n createdAt\n # customer\n discordRole\n id\n isEligibleForDirectSupport\n # members\n name\n # projects\n # teamPermissions\n updatedAt\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Update a team by id" + }, + "response": [] + }, + { + "name": "teamUserInvite", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamUserInvite($id: String!, $input: TeamUserInviteInput!) {\n teamUserInvite(id: $id, input: $input)\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Invite a user by email to a team" + }, + "response": [] + }, + { + "name": "teamUserRemove", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation teamUserRemove($id: String!, $input: TeamUserRemoveInput!) {\n teamUserRemove(id: $id, input: $input)\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Remove a user from a team" + }, + "response": [] + }, + { + "name": "telemetrySend", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation telemetrySend($input: TelemetrySendInput!) {\n telemetrySend(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Logs panics from CLI to Datadog" + }, + "response": [] + }, + { + "name": "templateClone", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation templateClone($code: String!) {\n templateClone(code: $code) {\n __typename\n activeProjects\n code\n config\n createdAt\n # creator\n demoProjectId\n id\n isApproved\n metadata\n projects\n # services\n # similarTemplates\n status\n teamId\n totalPayout\n userId\n }\n}", + "variables": "{\n\t\"code\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Duplicates an existing template" + }, + "response": [] + }, + { + "name": "templateCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation templateCreate($input: TemplateCreateInput!) {\n templateCreate(input: $input) {\n __typename\n activeProjects\n code\n config\n createdAt\n # creator\n demoProjectId\n id\n isApproved\n metadata\n projects\n # services\n # similarTemplates\n status\n teamId\n totalPayout\n userId\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Creates a template." + }, + "response": [] + }, + { + "name": "templateDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation templateDelete($id: String!) {\n templateDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a template." + }, + "response": [] + }, + { + "name": "templateDeploy", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation templateDeploy($input: TemplateDeployInput!) {\n templateDeploy(input: $input) {\n __typename\n projectId\n workflowId\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deploys a template." + }, + "response": [] + }, + { + "name": "templateGenerate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation templateGenerate($input: TemplateGenerateInput!) {\n templateGenerate(input: $input) {\n __typename\n activeProjects\n code\n config\n createdAt\n # creator\n demoProjectId\n id\n isApproved\n metadata\n projects\n # services\n # similarTemplates\n status\n teamId\n totalPayout\n userId\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Generate a template for a project" + }, + "response": [] + }, + { + "name": "templatePublish", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation templatePublish($id: String!, $input: TemplatePublishInput!) {\n templatePublish(id: $id, input: $input) {\n __typename\n activeProjects\n code\n config\n createdAt\n # creator\n demoProjectId\n id\n isApproved\n metadata\n projects\n # services\n # similarTemplates\n status\n teamId\n totalPayout\n userId\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Publishes a template." + }, + "response": [] + }, + { + "name": "templateUnpublish", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation templateUnpublish($id: String!) {\n templateUnpublish(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Unpublishes a template." + }, + "response": [] + }, + { + "name": "templateUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation templateUpdate($id: String!, $input: TemplateUpdateInput!) {\n templateUpdate(id: $id, input: $input) {\n __typename\n activeProjects\n code\n config\n createdAt\n # creator\n demoProjectId\n id\n isApproved\n metadata\n projects\n # services\n # similarTemplates\n status\n teamId\n totalPayout\n userId\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Updates a template." + }, + "response": [] + }, + { + "name": "twoFactorInfoCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation twoFactorInfoCreate($input: TwoFactorInfoCreateInput!) {\n twoFactorInfoCreate(input: $input) {\n __typename\n recoveryCodes\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Setup 2FA authorization for authenticated user." + }, + "response": [] + }, + { + "name": "twoFactorInfoDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation twoFactorInfoDelete {\n twoFactorInfoDelete\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes the TwoFactorInfo for the authenticated user." + }, + "response": [] + }, + { + "name": "twoFactorInfoSecret", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation twoFactorInfoSecret {\n twoFactorInfoSecret {\n __typename\n secret\n uri\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Generates the 2FA app secret for the authenticated user." + }, + "response": [] + }, + { + "name": "twoFactorInfoValidate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation twoFactorInfoValidate($input: TwoFactorInfoValidateInput!) {\n twoFactorInfoValidate(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Validates the token for a 2FA action or for a login request." + }, + "response": [] + }, + { + "name": "usageLimitRemove", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation usageLimitRemove($input: UsageLimitRemoveInput!) {\n usageLimitRemove(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Remove the usage limit for a customer" + }, + "response": [] + }, + { + "name": "usageLimitSet", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation usageLimitSet($input: UsageLimitSetInput!) {\n usageLimitSet(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Set the usage limit for a customer" + }, + "response": [] + }, + { + "name": "userBetaLeave", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation userBetaLeave {\n userBetaLeave\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Unsubscribe from the Beta program." + }, + "response": [] + }, + { + "name": "userDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation userDelete {\n userDelete\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Delete the currently authenticated user" + }, + "response": [] + }, + { + "name": "userDiscordDisconnect", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation userDiscordDisconnect {\n userDiscordDisconnect\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Disconnect your Railway account from Discord." + }, + "response": [] + }, + { + "name": "userFlagsRemove", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation userFlagsRemove($input: UserFlagsRemoveInput!) {\n userFlagsRemove(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Remove a flag on the user." + }, + "response": [] + }, + { + "name": "userFlagsSet", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation userFlagsSet($input: UserFlagsSetInput!) {\n userFlagsSet(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Set flags on the authenticated user." + }, + "response": [] + }, + { + "name": "userTermsUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation userTermsUpdate {\n userTermsUpdate {\n __typename\n agreedFairUse\n avatar\n banReason\n # cost\n createdAt\n # customer\n email\n featureFlags\n flags\n has2FA\n id\n isAdmin\n isDevPlan\n isEligibleForFreeHobbyPlan\n isOnHobbyPlan\n isVerified\n lastLogin\n name\n # projects\n # providerAuths\n # referredUsers\n registrationStatus\n riskLevel\n # teams\n termsAgreedOn\n }\n}", + "variables": "{\n\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Update date of TermsAgreedOn" + }, + "response": [] + }, + { + "name": "userUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation userUpdate($input: UserUpdateInput!) {\n userUpdate(input: $input) {\n __typename\n agreedFairUse\n avatar\n banReason\n # cost\n createdAt\n # customer\n email\n featureFlags\n flags\n has2FA\n id\n isAdmin\n isDevPlan\n isEligibleForFreeHobbyPlan\n isOnHobbyPlan\n isVerified\n lastLogin\n name\n # projects\n # providerAuths\n # referredUsers\n registrationStatus\n riskLevel\n # teams\n termsAgreedOn\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Update currently logged in user" + }, + "response": [] + }, + { + "name": "variableCollectionUpsert", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation variableCollectionUpsert($input: VariableCollectionUpsertInput!) {\n variableCollectionUpsert(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Upserts a collection of variables." + }, + "response": [] + }, + { + "name": "variableDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation variableDelete($input: VariableDeleteInput!) {\n variableDelete(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Deletes a variable." + }, + "response": [] + }, + { + "name": "variableUpsert", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation variableUpsert($input: VariableUpsertInput!) {\n variableUpsert(input: $input)\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Upserts a variable." + }, + "response": [] + }, + { + "name": "volumeCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation volumeCreate($input: VolumeCreateInput!) {\n volumeCreate(input: $input) {\n __typename\n createdAt\n id\n name\n # project\n projectId\n # volumeInstances\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Create a persistent volume in a project" + }, + "response": [] + }, + { + "name": "volumeDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation volumeDelete($volumeId: String!) {\n volumeDelete(volumeId: $volumeId)\n}", + "variables": "{\n\t\"volumeId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Delete a persistent volume in a project" + }, + "response": [] + }, + { + "name": "volumeInstanceUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation volumeInstanceUpdate($environmentId: String, $input: VolumeInstanceUpdateInput!, $volumeId: String!) {\n volumeInstanceUpdate(\n environmentId: $environmentId\n input: $input\n volumeId: $volumeId\n )\n}", + "variables": "{\n\t\"environmentId\": null,\n\t\"input\": null,\n\t\"volumeId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Update a volume instance. If no environmentId is provided, all volume instances for the volume will be updated." + }, + "response": [] + }, + { + "name": "volumeUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation volumeUpdate($input: VolumeUpdateInput!, $volumeId: String!) {\n volumeUpdate(input: $input, volumeId: $volumeId) {\n __typename\n createdAt\n id\n name\n # project\n projectId\n # volumeInstances\n }\n}", + "variables": "{\n\t\"input\": null,\n\t\"volumeId\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Update a persistent volume in a project" + }, + "response": [] + }, + { + "name": "webhookCreate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation webhookCreate($input: WebhookCreateInput!) {\n webhookCreate(input: $input) {\n __typename\n id\n lastStatus\n projectId\n url\n }\n}", + "variables": "{\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Create a webhook on a project" + }, + "response": [] + }, + { + "name": "webhookDelete", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation webhookDelete($id: String!) {\n webhookDelete(id: $id)\n}", + "variables": "{\n\t\"id\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Delete a webhook from a project" + }, + "response": [] + }, + { + "name": "webhookUpdate", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation webhookUpdate($id: String!, $input: WebhookUpdateInput!) {\n webhookUpdate(id: $id, input: $input) {\n __typename\n id\n lastStatus\n projectId\n url\n }\n}", + "variables": "{\n\t\"id\": null,\n\t\"input\": null\n}" + } + }, + "url": { + "raw": "https://backboard.railway.app/graphql/v2", + "protocol": "https", + "host": [ + "backboard", + "railway", + "app" + ], + "path": [ + "graphql", + "v2" + ] + }, + "description": "Update a webhook on a project" + }, + "response": [] + } + ] + } + ] +} diff --git a/src-tauri/plugins/importer-postman/src/index.ts b/src-tauri/plugins/importer-postman/src/index.ts new file mode 100644 index 00000000..b1c4e148 --- /dev/null +++ b/src-tauri/plugins/importer-postman/src/index.ts @@ -0,0 +1,127 @@ +import { Environment, Folder, HttpRequest, Workspace } from '../../../../src-web/lib/models'; + +const POSTMAN_2_1_0_SCHEMA = 'https://schema.getpostman.com/json/collection/v2.1.0/collection.json'; + +type AtLeast = Partial & Pick; + +interface ExportResources { + workspaces: AtLeast[]; + environments: AtLeast[]; + requests: AtLeast[]; + folders: AtLeast[]; +} + +export function pluginHookImport(contents: string): { resources: ExportResources } | undefined { + const root = parseJSONToRecord(contents); + if (root == null) return; + + const info = toRecord(root.info); + if (info.schema !== POSTMAN_2_1_0_SCHEMA || !Array.isArray(root.item)) { + return; + } + + const exportResources: ExportResources = { + workspaces: [], + environments: [], + requests: [], + folders: [], + }; + + const workspace: ExportResources['workspaces'][0] = { + model: 'workspace', + id: 'wrk_0', + name: info.name || 'Postman Import', + description: info.description || '', + }; + exportResources.workspaces.push(workspace); + + const importItem = (v: Record, folderId: string | null = null) => { + if (typeof v.name === 'string' && Array.isArray(v.item)) { + const folder: ExportResources['folders'][0] = { + model: 'folder', + workspaceId: workspace.id, + id: `fld_${exportResources.folders.length}`, + name: v.name, + folderId, + }; + exportResources.folders.push(folder); + for (const child of v.item) { + importItem(child, folder.id); + } + } else if (typeof v.name === 'string' && 'request' in v) { + const r = toRecord(v.request); + const bodyPatch = importBody(r.body); + const request: ExportResources['requests'][0] = { + model: 'http_request', + id: `req_${exportResources.requests.length}`, + workspaceId: workspace.id, + folderId, + name: v.name, + method: r.method || 'GET', + url: toRecord(r.url).raw, + headers: [...bodyPatch.headers, ...toArray(r.header).map(importHeader)], + body: bodyPatch.body, + bodyType: bodyPatch.bodyType, + + // TODO: support auth + // ...importAuth(r.auth), + }; + exportResources.requests.push(request); + } else { + console.log('Unknown item', v, folderId); + } + }; + + for (const item of root.item) { + importItem(item); + } + + return { resources: exportResources }; +} + +function importHeader(h: any): HttpRequest['headers'][0] { + const header = toRecord(h); + // TODO: support header + return { name: header.key, value: header.value, enabled: true }; +} + +function importBody(rawBody: any): Pick { + const body = toRecord(rawBody); + if ('graphql' in body) { + return { + headers: [ + { + name: 'Content-Type', + value: 'application/json', + enabled: true, + }, + ], + bodyType: 'graphql', + body: JSON.stringify( + { query: body.graphql.query, variables: parseJSONToRecord(body.graphql.variables) }, + null, + 2, + ), + }; + } else { + // TODO: support other body types + return { headers: [], bodyType: null, body: null }; + } +} + +function parseJSONToRecord(jsonStr: string): Record | null { + try { + return toRecord(JSON.parse(jsonStr)); + } catch (err) {} + return null; +} + +function toRecord(value: any): Record { + if (Object.prototype.toString.call(value) === '[object Object]') return value; + else return {}; +} + +function toArray(value: any): any[] { + if (Object.prototype.toString.call(value) === '[object Array]') return value; + else return []; +} diff --git a/src-tauri/plugins/importer-postman/tsconfig.json b/src-tauri/plugins/importer-postman/tsconfig.json new file mode 100644 index 00000000..d79dc223 --- /dev/null +++ b/src-tauri/plugins/importer-postman/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": [ + "ES2020" + ], + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": [ + "src" + ] +} diff --git a/src-tauri/plugins/importer-postman/vite.config.js b/src-tauri/plugins/importer-postman/vite.config.js new file mode 100644 index 00000000..1ee8cbf4 --- /dev/null +++ b/src-tauri/plugins/importer-postman/vite.config.js @@ -0,0 +1,13 @@ +import { resolve } from 'path'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + build: { + lib: { + entry: resolve(__dirname, 'src/index.ts'), + fileName: 'index', + formats: ['es'], + }, + outDir: resolve(__dirname, 'out'), + }, +}); diff --git a/src-tauri/plugins/yaak-importer/out/index.js b/src-tauri/plugins/importer-yaak/out/index.js similarity index 100% rename from src-tauri/plugins/yaak-importer/out/index.js rename to src-tauri/plugins/importer-yaak/out/index.js diff --git a/src-tauri/plugins/yaak-importer/src/index.js b/src-tauri/plugins/importer-yaak/src/index.js similarity index 100% rename from src-tauri/plugins/yaak-importer/src/index.js rename to src-tauri/plugins/importer-yaak/src/index.js diff --git a/src-tauri/plugins/yaak-importer/vite.config.js b/src-tauri/plugins/importer-yaak/vite.config.js similarity index 100% rename from src-tauri/plugins/yaak-importer/vite.config.js rename to src-tauri/plugins/importer-yaak/vite.config.js diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index c269542f..76e5b9b5 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -14,6 +14,7 @@ use std::io::Write; use std::process::exit; use base64::Engine; +use fern::colors::ColoredLevelConfig; use http::header::{HeaderName, ACCEPT, USER_AGENT}; use http::{HeaderMap, HeaderValue, Method}; use log::info; @@ -27,14 +28,14 @@ use sqlx::{Pool, Sqlite, SqlitePool}; use tauri::TitleBarStyle; use tauri::{AppHandle, Menu, RunEvent, State, Submenu, Window, WindowUrl, Wry}; use tauri::{CustomMenuItem, Manager, WindowEvent}; -use tauri_plugin_log::LogTarget; +use tauri_plugin_log::{fern, LogTarget}; use tauri_plugin_window_state::{StateFlags, WindowExt}; use tokio::sync::Mutex; use window_ext::TrafficLightWindowExt; use crate::analytics::{track_event, AnalyticsAction, AnalyticsResource}; -use crate::plugin::ImportResources; +use crate::plugin::{ImportResources, ImportResult}; mod analytics; mod models; @@ -268,8 +269,8 @@ async fn import_data( file_paths: Vec<&str>, ) -> Result { let pool = &*db_instance.lock().await; - let mut resources: Option = None; - let plugins = vec!["yaak-importer", "insomnia-importer"]; + let mut result: Option = None; + let plugins = vec!["importer-yaak", "importer-insomnia", "importer-postman"]; for plugin_name in plugins { if let Some(r) = plugin::run_plugin_import( &window.app_handle(), @@ -278,18 +279,18 @@ async fn import_data( ) .await { - resources = Some(r); + result = Some(r); break; } } - match resources { + match result { None => Err("No importers found for the chosen file".to_string()), Some(r) => { let mut imported_resources = ImportResources::default(); info!("Importing resources"); - for w in r.workspaces { + for w in r.resources.workspaces { let x = models::upsert_workspace(pool, w) .await .expect("Failed to create workspace"); @@ -297,7 +298,7 @@ async fn import_data( info!("Imported workspace: {}", x.name); } - for e in r.environments { + for e in r.resources.environments { let x = models::upsert_environment(pool, e) .await .expect("Failed to create environment"); @@ -305,7 +306,7 @@ async fn import_data( info!("Imported environment: {}", x.name); } - for f in r.folders { + for f in r.resources.folders { let x = models::upsert_folder(pool, f) .await .expect("Failed to create folder"); @@ -313,7 +314,7 @@ async fn import_data( info!("Imported folder: {}", x.name); } - for r in r.requests { + for r in r.resources.requests { let x = models::upsert_request(pool, r) .await .expect("Failed to create request"); @@ -794,6 +795,8 @@ fn main() { .targets([LogTarget::LogDir, LogTarget::Stdout, LogTarget::Webview]) .level_for("tao", log::LevelFilter::Info) .level_for("sqlx", log::LevelFilter::Warn) + .with_colors(ColoredLevelConfig::default()) + .level(log::LevelFilter::Trace) .build(), ) .plugin(tauri_plugin_window_state::Builder::default().build()) diff --git a/src-tauri/src/plugin.rs b/src-tauri/src/plugin.rs index 9f7a97fa..b0edf96b 100644 --- a/src-tauri/src/plugin.rs +++ b/src-tauri/src/plugin.rs @@ -15,6 +15,11 @@ use tauri::AppHandle; use crate::models::{Environment, Folder, HttpRequest, Workspace}; +#[derive(Default, Debug, Deserialize, Serialize)] +pub struct ImportResult { + pub resources: ImportResources, +} + #[derive(Default, Debug, Deserialize, Serialize)] pub struct ImportResources { pub workspaces: Vec, @@ -27,7 +32,7 @@ pub async fn run_plugin_import( app_handle: &AppHandle, plugin_name: &str, file_path: &str, -) -> Option { +) -> Option { let file = fs::read_to_string(file_path) .unwrap_or_else(|_| panic!("Unable to read file {}", file_path)); let file_contents = file.as_str(); @@ -42,7 +47,7 @@ pub async fn run_plugin_import( return None; } - let resources: ImportResources = + let resources: ImportResult = serde_json::from_value(result_json).expect("failed to parse result json"); Some(resources) }