From 4bfce3c62d0886995bb803e2f519f8bee1e387ec Mon Sep 17 00:00:00 2001 From: Daan Breur Date: Tue, 16 Jul 2024 22:41:07 +0200 Subject: [PATCH 01/10] Add migration for the discord_integration_enabled field in ctfnote.settings --- api/migrations/54-add-discord-integration-enabled.sql | 7 +++++++ front/src/ctfnote/models.ts | 1 + front/src/graphql/Settings.graphql | 1 + 3 files changed, 9 insertions(+) create mode 100644 api/migrations/54-add-discord-integration-enabled.sql diff --git a/api/migrations/54-add-discord-integration-enabled.sql b/api/migrations/54-add-discord-integration-enabled.sql new file mode 100644 index 00000000..ec16d54a --- /dev/null +++ b/api/migrations/54-add-discord-integration-enabled.sql @@ -0,0 +1,7 @@ +ALTER TABLE ctfnote.settings + ADD COLUMN "discord_integration_enabled" boolean DEFAULT FALSE; + +GRANT SELECT ("discord_integration_enabled") ON ctfnote.settings TO user_guest; +REVOKE UPDATE ("discord_integration_enabled") ON ctfnote.settings FROM user_admin; +GRANT UPDATE ("discord_integration_enabled") ON ctfnote.settings TO user_postgraphile; + diff --git a/front/src/ctfnote/models.ts b/front/src/ctfnote/models.ts index f505310c..00debfa7 100644 --- a/front/src/ctfnote/models.ts +++ b/front/src/ctfnote/models.ts @@ -102,6 +102,7 @@ export type Settings = { registrationAllowed: boolean; registrationPasswordAllowed: boolean; style: SettingsColorMap; + discordIntegrationEnabled: boolean; }; export type AdminSettings = Settings & { diff --git a/front/src/graphql/Settings.graphql b/front/src/graphql/Settings.graphql index 75fbb493..c3cc15a3 100644 --- a/front/src/graphql/Settings.graphql +++ b/front/src/graphql/Settings.graphql @@ -3,6 +3,7 @@ fragment SettingsInfo on Setting { registrationAllowed registrationPasswordAllowed style + discordIntegrationEnabled } fragment AdminSettingsInfo on Setting { From 9e3834d8d5b59ad507c7ad1bb5fdc85c815830f9 Mon Sep 17 00:00:00 2001 From: Daan Breur Date: Tue, 16 Jul 2024 22:49:03 +0200 Subject: [PATCH 02/10] Add code to sync the discord use from the config to the database. --- api/src/index.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/api/src/index.ts b/api/src/index.ts index 8d92cc41..b2846123 100644 --- a/api/src/index.ts +++ b/api/src/index.ts @@ -22,6 +22,7 @@ import discordHooks from "./plugins/discordHooks"; import { getDiscordClient } from "./discord"; import PgManyToManyPlugin from "@graphile-contrib/pg-many-to-many"; import ProfileSubscriptionPlugin from "./plugins/ProfileSubscriptionPlugin"; +import { connectToDatabase } from "./discord/database/database"; function getDbUrl(role: "user" | "admin") { const login = config.db[role].login; @@ -154,6 +155,22 @@ async function main() { getDiscordClient(); + const pgClient = await connectToDatabase(); //? maybe we should not keep this dependency in the discord folder? + + try { + const query = + "UPDATE ctfnote.settings SET discord_integration_enabled = $1"; + const values = [config.discord.use.toLowerCase() !== "false"]; + await pgClient.query(query, values); + } catch (error) { + console.error( + "Failed to set discord_integration_enabled flag in the database:", + error + ); + } finally { + pgClient.release(); + } + app.listen(config.web.port, () => { //sendMessageToDiscord("CTFNote API started"); console.log(`Listening on :${config.web.port}`); From 15aab66785a5d3f649056c5f5dd109671893ecd0 Mon Sep 17 00:00:00 2001 From: Daan Breur Date: Tue, 16 Jul 2024 23:04:11 +0200 Subject: [PATCH 03/10] Make sure discord_integration_enabled is not null. --- api/migrations/54-add-discord-integration-enabled.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/migrations/54-add-discord-integration-enabled.sql b/api/migrations/54-add-discord-integration-enabled.sql index ec16d54a..612c27f7 100644 --- a/api/migrations/54-add-discord-integration-enabled.sql +++ b/api/migrations/54-add-discord-integration-enabled.sql @@ -1,5 +1,5 @@ ALTER TABLE ctfnote.settings - ADD COLUMN "discord_integration_enabled" boolean DEFAULT FALSE; + ADD COLUMN "discord_integration_enabled" boolean NOT NULL DEFAULT FALSE; GRANT SELECT ("discord_integration_enabled") ON ctfnote.settings TO user_guest; REVOKE UPDATE ("discord_integration_enabled") ON ctfnote.settings FROM user_admin; From d66de9558507485df75a8177af266eb06b7a79f2 Mon Sep 17 00:00:00 2001 From: Daan Breur Date: Tue, 16 Jul 2024 23:21:09 +0200 Subject: [PATCH 04/10] Maybe its a good idea to grant the correct user.... --- api/migrations/54-add-discord-integration-enabled.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/migrations/54-add-discord-integration-enabled.sql b/api/migrations/54-add-discord-integration-enabled.sql index 612c27f7..5fa98cfc 100644 --- a/api/migrations/54-add-discord-integration-enabled.sql +++ b/api/migrations/54-add-discord-integration-enabled.sql @@ -1,7 +1,7 @@ ALTER TABLE ctfnote.settings ADD COLUMN "discord_integration_enabled" boolean NOT NULL DEFAULT FALSE; -GRANT SELECT ("discord_integration_enabled") ON ctfnote.settings TO user_guest; +GRANT SELECT ("discord_integration_enabled") ON ctfnote.settings TO user_anonymous; REVOKE UPDATE ("discord_integration_enabled") ON ctfnote.settings FROM user_admin; GRANT UPDATE ("discord_integration_enabled") ON ctfnote.settings TO user_postgraphile; From 5b130ce6e9fa4cc028bd3d658bb73dfb31669b88 Mon Sep 17 00:00:00 2001 From: Daan Breur Date: Wed, 17 Jul 2024 10:22:27 +0200 Subject: [PATCH 05/10] Add checks to the pages with Discord --- front/src/components/CTF/Guests.vue | 9 ++++++++- front/src/ctfnote/settings.ts | 1 + front/src/pages/Settings.vue | 23 +++++++++++++++++++++-- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/front/src/components/CTF/Guests.vue b/front/src/components/CTF/Guests.vue index 86f38a2d..3d7cc97f 100644 --- a/front/src/components/CTF/Guests.vue +++ b/front/src/components/CTF/Guests.vue @@ -33,7 +33,12 @@
No guests found.
Sync with Discord event
-
+
+
+ The Discord integration is currently disabled on the backend. +
+
+
@@ -55,10 +60,12 @@ export default defineComponent({ setup() { const team = ctfnote.profiles.injectTeam(); const now = ref(new Date()); + const settings = ctfnote.settings.injectSettings(); return { now, team, + settings, inviteUserToCtf: ctfnote.ctfs.useInviteUserToCtf(), uninviteUserToCtf: ctfnote.ctfs.useUninviteUserToCtf(), }; diff --git a/front/src/ctfnote/settings.ts b/front/src/ctfnote/settings.ts index 04c6fd74..5096a1d1 100644 --- a/front/src/ctfnote/settings.ts +++ b/front/src/ctfnote/settings.ts @@ -40,6 +40,7 @@ export function buildSettings( registrationAllowed: fragment.registrationAllowed ?? false, registrationPasswordAllowed: fragment.registrationPasswordAllowed ?? false, style: parseStyle(fragment.style ?? '{}'), + discordIntegrationEnabled: fragment.discordIntegrationEnabled ?? false, }; } diff --git a/front/src/pages/Settings.vue b/front/src/pages/Settings.vue index df98a339..a6745089 100644 --- a/front/src/pages/Settings.vue +++ b/front/src/pages/Settings.vue @@ -138,7 +138,19 @@
Link your Discord account
- + +
+ The Discord integration is currently disabled on the backend. +
+
+ +
Your CTFNote account is not linked to your Discord account.
@@ -162,7 +174,11 @@
- + = ref(''); const { result: profileTokenResult } = ctfnote.me.getProfileToken(); + const settings = ctfnote.settings.injectSettings(); + watch( profileTokenResult, (s) => { @@ -242,6 +260,7 @@ export default defineComponent({ username, description, me, + settings, systemNotificationEnabled, askForNotificationPrivilege, disableSystemNotification, From 42293af55015c1543c82559b1a257acc6341a4bc Mon Sep 17 00:00:00 2001 From: Daan Breur Date: Wed, 17 Jul 2024 10:26:42 +0200 Subject: [PATCH 06/10] Run codegen for graphql schema. For some reason codegen deleted a lot of things, lets hope nothing bad happens --- front/graphql.schema.json | 1974 +++----------------------------- front/src/generated/graphql.ts | 279 +---- 2 files changed, 148 insertions(+), 2105 deletions(-) diff --git a/front/graphql.schema.json b/front/graphql.schema.json index 9f91ea6a..a3bec448 100644 --- a/front/graphql.schema.json +++ b/front/graphql.schema.json @@ -220,93 +220,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "INPUT_OBJECT", - "name": "AssignedTagFilter", - "description": "A filter to be used against `AssignedTag` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AssignedTagFilter", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "AssignedTagFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AssignedTagFilter", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tagId", - "description": "Filter by the object’s `tagId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "taskId", - "description": "Filter by the object’s `taskId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, { "kind": "INPUT_OBJECT", "name": "AssignedTagInput", @@ -543,165 +456,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "INPUT_OBJECT", - "name": "BooleanFilter", - "description": "A filter to be used against Boolean fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, { "kind": "INPUT_OBJECT", "name": "CancelWorkingOnInput", @@ -2068,18 +1822,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "InvitationFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -2604,42 +2346,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "endTime", - "description": "Filter by the object’s `endTime` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "granted", - "description": "Filter by the object’s `granted` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BooleanFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "not", "description": "Negates the expression.", @@ -2672,30 +2378,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "secretsId", - "description": "Filter by the object’s `secretsId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startTime", - "description": "Filter by the object’s `startTime` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "title", "description": "Filter by the object’s `title` field.", @@ -3286,81 +2968,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "INPUT_OBJECT", - "name": "CtfSecretFilter", - "description": "A filter to be used against `CtfSecret` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CtfSecretFilter", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CtfSecretFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CtfSecretFilter", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, { "kind": "INPUT_OBJECT", "name": "CtfSecretPatch", @@ -3794,165 +3401,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "INPUT_OBJECT", - "name": "DatetimeFilter", - "description": "A filter to be used against Datetime fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Datetime", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, { "kind": "INPUT_OBJECT", "name": "DeleteAssignedTagByNodeIdInput", @@ -5122,201 +4570,42 @@ "possibleTypes": null }, { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "description": "A filter to be used against Int fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ + "kind": "OBJECT", + "name": "Invitation", + "description": null, + "fields": [ { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", + "name": "ctf", + "description": "Reads a single `Ctf` that is related to this `Invitation`.", + "args": [], "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "OBJECT", + "name": "Ctf", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "equalTo", - "description": "Equal to the specified value.", + "name": "ctfId", + "description": null, + "args": [], "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Invitation", - "description": null, - "fields": [ - { - "name": "ctf", - "description": "Reads a single `Ctf` that is related to this `Invitation`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Ctf", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ctfId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodeId", - "description": "A globally unique identifier. Can be used in various places throughout the system to identify this single value.", - "args": [], + "name": "nodeId", + "description": "A globally unique identifier. Can be used in various places throughout the system to identify this single value.", + "args": [], "type": { "kind": "NON_NULL", "name": null, @@ -5404,93 +4693,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "INPUT_OBJECT", - "name": "InvitationFilter", - "description": "A filter to be used against `Invitation` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "InvitationFilter", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ctfId", - "description": "Filter by the object’s `ctfId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "InvitationFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "InvitationFilter", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "profileId", - "description": "Filter by the object’s `profileId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, { "kind": "INPUT_OBJECT", "name": "InvitationInput", @@ -7704,18 +6906,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "InvitationFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -8006,18 +7196,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "WorkOnTaskFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -8314,18 +7492,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "not", "description": "Negates the expression.", @@ -8359,23 +7525,11 @@ "deprecationReason": null }, { - "name": "role", - "description": "Filter by the object’s `role` field.", + "name": "username", + "description": "Filter by the object’s `username` field.", "type": { "kind": "INPUT_OBJECT", - "name": "RoleFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "username", - "description": "Filter by the object’s `username` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "StringFilter", + "name": "StringFilter", "ofType": null }, "defaultValue": null, @@ -9159,18 +8313,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "AssignedTagFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -9392,18 +8534,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CtfSecretFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -9614,18 +8744,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ProfileFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -9699,18 +8817,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CtfFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -9870,18 +8976,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "InvitationFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -10044,18 +9138,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CtfFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -11163,18 +10245,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "WorkOnTaskFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -11876,165 +10946,6 @@ ], "possibleTypes": null }, - { - "kind": "INPUT_OBJECT", - "name": "RoleFilter", - "description": "A filter to be used against Role fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "ENUM", - "name": "Role", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "ENUM", - "name": "Role", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "ENUM", - "name": "Role", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "ENUM", - "name": "Role", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "Role", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "ENUM", - "name": "Role", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "ENUM", - "name": "Role", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "ENUM", - "name": "Role", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "ENUM", - "name": "Role", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "Role", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, { "kind": "INPUT_OBJECT", "name": "SetDiscordEventLinkInput", @@ -12122,6 +11033,22 @@ "name": "Setting", "description": null, "fields": [ + { + "name": "discordIntegrationEnabled", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "icalPassword", "description": null, @@ -12248,6 +11175,18 @@ "description": "Represents an update to a `Setting`. Fields that are set will be updated.", "fields": null, "inputFields": [ + { + "name": "discordIntegrationEnabled", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "icalPassword", "description": null, @@ -12646,605 +11585,141 @@ "description": null, "type": { "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "StopWorkingOnPayload", - "description": "The output of our `stopWorkingOn` mutation.", - "fields": [ - { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input,\nunchanged and unused. May be used by a client to track mutations.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "profile", - "description": "Reads a single `Profile` that is related to this `WorkOnTask`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Profile", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "task", - "description": "Reads a single `Task` that is related to this `WorkOnTask`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Task", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "workOnTask", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "WorkOnTask", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "workOnTaskEdge", - "description": "An edge for our `WorkOnTask`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `WorkOnTask`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "WorkOnTasksOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "WorkOnTasksEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "String", - "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "description": "A filter to be used against String fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "distinctFrom", - "description": "Not equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "distinctFromInsensitive", - "description": "Not equal to the specified value, treating null like an ordinary value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endsWith", - "description": "Ends with the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endsWithInsensitive", - "description": "Ends with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "equalTo", - "description": "Equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "equalToInsensitive", - "description": "Equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThan", - "description": "Greater than the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThanInsensitive", - "description": "Greater than the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "greaterThanOrEqualToInsensitive", - "description": "Greater than or equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "in", - "description": "Included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inInsensitive", - "description": "Included in the specified list (case-insensitive).", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includes", - "description": "Contains the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesInsensitive", - "description": "Contains the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isNull", - "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThanInsensitive", - "description": "Less than the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lessThanOrEqualToInsensitive", - "description": "Less than or equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "like", - "description": "Matches the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "likeInsensitive", - "description": "Matches the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notDistinctFromInsensitive", - "description": "Equal to the specified value, treating null like an ordinary value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notEndsWith", - "description": "Does not end with the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notEndsWithInsensitive", - "description": "Does not end with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notEqualTo", - "description": "Not equal to the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notEqualToInsensitive", - "description": "Not equal to the specified value (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notIn", - "description": "Not included in the specified list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notInInsensitive", - "description": "Not included in the specified list (case-insensitive).", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "notIncludes", - "description": "Does not contain the specified string (case-sensitive).", - "type": { - "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "StopWorkingOnPayload", + "description": "The output of our `stopWorkingOn` mutation.", + "fields": [ { - "name": "notIncludesInsensitive", - "description": "Does not contain the specified string (case-insensitive).", + "name": "clientMutationId", + "description": "The exact same `clientMutationId` that was provided in the mutation input,\nunchanged and unused. May be used by a client to track mutations.", + "args": [], "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "notLike", - "description": "Does not match the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", + "name": "profile", + "description": "Reads a single `Profile` that is related to this `WorkOnTask`.", + "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "Profile", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "notLikeInsensitive", - "description": "Does not match the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", + "name": "query", + "description": "Our root query field type. Allows us to run any query from our mutation payload.", + "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "Query", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "notStartsWith", - "description": "Does not start with the specified string (case-sensitive).", + "name": "task", + "description": "Reads a single `Task` that is related to this `WorkOnTask`.", + "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "Task", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "notStartsWithInsensitive", - "description": "Does not start with the specified string (case-insensitive).", + "name": "workOnTask", + "description": null, + "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "WorkOnTask", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "startsWith", - "description": "Starts with the specified string (case-sensitive).", + "name": "workOnTaskEdge", + "description": "An edge for our `WorkOnTask`. May be used by Relay 1.", + "args": [ + { + "name": "orderBy", + "description": "The method to use when ordering `WorkOnTask`.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "WorkOnTasksOrderBy", + "ofType": null + } + } + }, + "defaultValue": "[PRIMARY_KEY_ASC]", + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "WorkOnTasksEdge", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "StringFilter", + "description": "A filter to be used against String fields. All fields are combined with a logical ‘and.’", + "fields": null, + "inputFields": [ { - "name": "startsWithInsensitive", - "description": "Starts with the specified string (case-insensitive).", + "name": "includesInsensitive", + "description": "Contains the specified string (case-insensitive).", "type": { "kind": "SCALAR", "name": "String", @@ -13384,18 +11859,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "AssignedTagFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -13707,18 +12170,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "not", "description": "Negates the expression.", @@ -14165,18 +12616,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "AssignedTagFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -14664,18 +13103,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "filter", - "description": "A filter to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "WorkOnTaskFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -14830,30 +13257,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "ctfId", - "description": "Filter by the object’s `ctfId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "Filter by the object’s `id` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "not", "description": "Negates the expression.", @@ -14886,18 +13289,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "solved", - "description": "Filter by the object’s `solved` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "BooleanFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, { "name": "title", "description": "Filter by the object’s `title` field.", @@ -17259,93 +15650,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "INPUT_OBJECT", - "name": "WorkOnTaskFilter", - "description": "A filter to be used against `WorkOnTask` object types. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "and", - "description": "Checks for all expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "WorkOnTaskFilter", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "not", - "description": "Negates the expression.", - "type": { - "kind": "INPUT_OBJECT", - "name": "WorkOnTaskFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "or", - "description": "Checks for any expressions in this list.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "WorkOnTaskFilter", - "ofType": null - } - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "profileId", - "description": "Filter by the object’s `profileId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "taskId", - "description": "Filter by the object’s `taskId` field.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IntFilter", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, { "kind": "INPUT_OBJECT", "name": "WorkOnTaskInput", diff --git a/front/src/generated/graphql.ts b/front/src/generated/graphql.ts index a2d6744e..bd9a5c0f 100644 --- a/front/src/generated/graphql.ts +++ b/front/src/generated/graphql.ts @@ -67,20 +67,6 @@ export type AssignedTagCondition = { taskId?: InputMaybe; }; -/** A filter to be used against `AssignedTag` object types. All fields are combined with a logical ‘and.’ */ -export type AssignedTagFilter = { - /** Checks for all expressions in this list. */ - and?: InputMaybe>; - /** Negates the expression. */ - not?: InputMaybe; - /** Checks for any expressions in this list. */ - or?: InputMaybe>; - /** Filter by the object’s `tagId` field. */ - tagId?: InputMaybe; - /** Filter by the object’s `taskId` field. */ - taskId?: InputMaybe; -}; - /** An input for mutations affecting `AssignedTag` */ export type AssignedTagInput = { tagId: Scalars['Int']; @@ -120,32 +106,6 @@ export enum AssignedTagsOrderBy { TaskIdDesc = 'TASK_ID_DESC' } -/** A filter to be used against Boolean fields. All fields are combined with a logical ‘and.’ */ -export type BooleanFilter = { - /** Not equal to the specified value, treating null like an ordinary value. */ - distinctFrom?: InputMaybe; - /** Equal to the specified value. */ - equalTo?: InputMaybe; - /** Greater than the specified value. */ - greaterThan?: InputMaybe; - /** Greater than or equal to the specified value. */ - greaterThanOrEqualTo?: InputMaybe; - /** Included in the specified list. */ - in?: InputMaybe>; - /** Is null (if `true` is specified) or is not null (if `false` is specified). */ - isNull?: InputMaybe; - /** Less than the specified value. */ - lessThan?: InputMaybe; - /** Less than or equal to the specified value. */ - lessThanOrEqualTo?: InputMaybe; - /** Equal to the specified value, treating null like an ordinary value. */ - notDistinctFrom?: InputMaybe; - /** Not equal to the specified value. */ - notEqualTo?: InputMaybe; - /** Not included in the specified list. */ - notIn?: InputMaybe>; -}; - /** All input for the `cancelWorkingOn` mutation. */ export type CancelWorkingOnInput = { /** @@ -480,7 +440,6 @@ export type CtfInvitationsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -529,20 +488,10 @@ export type CtfCondition = { export type CtfFilter = { /** Checks for all expressions in this list. */ and?: InputMaybe>; - /** Filter by the object’s `endTime` field. */ - endTime?: InputMaybe; - /** Filter by the object’s `granted` field. */ - granted?: InputMaybe; - /** Filter by the object’s `id` field. */ - id?: InputMaybe; /** Negates the expression. */ not?: InputMaybe; /** Checks for any expressions in this list. */ or?: InputMaybe>; - /** Filter by the object’s `secretsId` field. */ - secretsId?: InputMaybe; - /** Filter by the object’s `startTime` field. */ - startTime?: InputMaybe; /** Filter by the object’s `title` field. */ title?: InputMaybe; }; @@ -625,18 +574,6 @@ export type CtfSecretCondition = { id?: InputMaybe; }; -/** A filter to be used against `CtfSecret` object types. All fields are combined with a logical ‘and.’ */ -export type CtfSecretFilter = { - /** Checks for all expressions in this list. */ - and?: InputMaybe>; - /** Filter by the object’s `id` field. */ - id?: InputMaybe; - /** Negates the expression. */ - not?: InputMaybe; - /** Checks for any expressions in this list. */ - or?: InputMaybe>; -}; - /** Represents an update to a `CtfSecret`. Fields that are set will be updated. */ export type CtfSecretPatch = { credentials?: InputMaybe; @@ -712,32 +649,6 @@ export enum CtfsOrderBy { TitleDesc = 'TITLE_DESC' } -/** A filter to be used against Datetime fields. All fields are combined with a logical ‘and.’ */ -export type DatetimeFilter = { - /** Not equal to the specified value, treating null like an ordinary value. */ - distinctFrom?: InputMaybe; - /** Equal to the specified value. */ - equalTo?: InputMaybe; - /** Greater than the specified value. */ - greaterThan?: InputMaybe; - /** Greater than or equal to the specified value. */ - greaterThanOrEqualTo?: InputMaybe; - /** Included in the specified list. */ - in?: InputMaybe>; - /** Is null (if `true` is specified) or is not null (if `false` is specified). */ - isNull?: InputMaybe; - /** Less than the specified value. */ - lessThan?: InputMaybe; - /** Less than or equal to the specified value. */ - lessThanOrEqualTo?: InputMaybe; - /** Equal to the specified value, treating null like an ordinary value. */ - notDistinctFrom?: InputMaybe; - /** Not equal to the specified value. */ - notEqualTo?: InputMaybe; - /** Not included in the specified list. */ - notIn?: InputMaybe>; -}; - /** All input for the `deleteAssignedTagByNodeId` mutation. */ export type DeleteAssignedTagByNodeIdInput = { /** @@ -1010,32 +921,6 @@ export type ImportCtfPayload = { query?: Maybe; }; -/** A filter to be used against Int fields. All fields are combined with a logical ‘and.’ */ -export type IntFilter = { - /** Not equal to the specified value, treating null like an ordinary value. */ - distinctFrom?: InputMaybe; - /** Equal to the specified value. */ - equalTo?: InputMaybe; - /** Greater than the specified value. */ - greaterThan?: InputMaybe; - /** Greater than or equal to the specified value. */ - greaterThanOrEqualTo?: InputMaybe; - /** Included in the specified list. */ - in?: InputMaybe>; - /** Is null (if `true` is specified) or is not null (if `false` is specified). */ - isNull?: InputMaybe; - /** Less than the specified value. */ - lessThan?: InputMaybe; - /** Less than or equal to the specified value. */ - lessThanOrEqualTo?: InputMaybe; - /** Equal to the specified value, treating null like an ordinary value. */ - notDistinctFrom?: InputMaybe; - /** Not equal to the specified value. */ - notEqualTo?: InputMaybe; - /** Not included in the specified list. */ - notIn?: InputMaybe>; -}; - export type Invitation = Node & { __typename?: 'Invitation'; /** Reads a single `Ctf` that is related to this `Invitation`. */ @@ -1059,20 +944,6 @@ export type InvitationCondition = { profileId?: InputMaybe; }; -/** A filter to be used against `Invitation` object types. All fields are combined with a logical ‘and.’ */ -export type InvitationFilter = { - /** Checks for all expressions in this list. */ - and?: InputMaybe>; - /** Filter by the object’s `ctfId` field. */ - ctfId?: InputMaybe; - /** Negates the expression. */ - not?: InputMaybe; - /** Checks for any expressions in this list. */ - or?: InputMaybe>; - /** Filter by the object’s `profileId` field. */ - profileId?: InputMaybe; -}; - /** An input for mutations affecting `Invitation` */ export type InvitationInput = { ctfId: Scalars['Int']; @@ -1582,7 +1453,6 @@ export type ProfileInvitationsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1606,7 +1476,6 @@ export type ProfileWorkOnTasksArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1651,14 +1520,10 @@ export type ProfileFilter = { and?: InputMaybe>; /** Filter by the object’s `discordId` field. */ discordId?: InputMaybe; - /** Filter by the object’s `id` field. */ - id?: InputMaybe; /** Negates the expression. */ not?: InputMaybe; /** Checks for any expressions in this list. */ or?: InputMaybe>; - /** Filter by the object’s `role` field. */ - role?: InputMaybe; /** Filter by the object’s `username` field. */ username?: InputMaybe; }; @@ -1864,7 +1729,6 @@ export type QueryAssignedTagsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1901,7 +1765,6 @@ export type QueryCtfSecretsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1926,7 +1789,6 @@ export type QueryCtfsArgs = { export type QueryGuestsArgs = { after?: InputMaybe; before?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1937,7 +1799,6 @@ export type QueryGuestsArgs = { export type QueryIncomingCtfArgs = { after?: InputMaybe; before?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1962,7 +1823,6 @@ export type QueryInvitationsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1980,7 +1840,6 @@ export type QueryNodeArgs = { export type QueryPastCtfArgs = { after?: InputMaybe; before?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -2137,7 +1996,6 @@ export type QueryWorkOnTasksArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -2299,32 +2157,6 @@ export enum Role { UserMember = 'USER_MEMBER' } -/** A filter to be used against Role fields. All fields are combined with a logical ‘and.’ */ -export type RoleFilter = { - /** Not equal to the specified value, treating null like an ordinary value. */ - distinctFrom?: InputMaybe; - /** Equal to the specified value. */ - equalTo?: InputMaybe; - /** Greater than the specified value. */ - greaterThan?: InputMaybe; - /** Greater than or equal to the specified value. */ - greaterThanOrEqualTo?: InputMaybe; - /** Included in the specified list. */ - in?: InputMaybe>; - /** Is null (if `true` is specified) or is not null (if `false` is specified). */ - isNull?: InputMaybe; - /** Less than the specified value. */ - lessThan?: InputMaybe; - /** Less than or equal to the specified value. */ - lessThanOrEqualTo?: InputMaybe; - /** Equal to the specified value, treating null like an ordinary value. */ - notDistinctFrom?: InputMaybe; - /** Not equal to the specified value. */ - notEqualTo?: InputMaybe; - /** Not included in the specified list. */ - notIn?: InputMaybe>; -}; - /** All input for the `setDiscordEventLink` mutation. */ export type SetDiscordEventLinkInput = { /** @@ -2350,6 +2182,7 @@ export type SetDiscordEventLinkPayload = { export type Setting = Node & { __typename?: 'Setting'; + discordIntegrationEnabled: Scalars['Boolean']; icalPassword?: Maybe; /** A globally unique identifier. Can be used in various places throughout the system to identify this single value. */ nodeId: Scalars['ID']; @@ -2362,6 +2195,7 @@ export type Setting = Node & { /** Represents an update to a `Setting`. Fields that are set will be updated. */ export type SettingPatch = { + discordIntegrationEnabled?: InputMaybe; icalPassword?: InputMaybe; registrationAllowed?: InputMaybe; registrationDefaultRole?: InputMaybe; @@ -2471,80 +2305,8 @@ export type StopWorkingOnPayloadWorkOnTaskEdgeArgs = { /** A filter to be used against String fields. All fields are combined with a logical ‘and.’ */ export type StringFilter = { - /** Not equal to the specified value, treating null like an ordinary value. */ - distinctFrom?: InputMaybe; - /** Not equal to the specified value, treating null like an ordinary value (case-insensitive). */ - distinctFromInsensitive?: InputMaybe; - /** Ends with the specified string (case-sensitive). */ - endsWith?: InputMaybe; - /** Ends with the specified string (case-insensitive). */ - endsWithInsensitive?: InputMaybe; - /** Equal to the specified value. */ - equalTo?: InputMaybe; - /** Equal to the specified value (case-insensitive). */ - equalToInsensitive?: InputMaybe; - /** Greater than the specified value. */ - greaterThan?: InputMaybe; - /** Greater than the specified value (case-insensitive). */ - greaterThanInsensitive?: InputMaybe; - /** Greater than or equal to the specified value. */ - greaterThanOrEqualTo?: InputMaybe; - /** Greater than or equal to the specified value (case-insensitive). */ - greaterThanOrEqualToInsensitive?: InputMaybe; - /** Included in the specified list. */ - in?: InputMaybe>; - /** Included in the specified list (case-insensitive). */ - inInsensitive?: InputMaybe>; - /** Contains the specified string (case-sensitive). */ - includes?: InputMaybe; /** Contains the specified string (case-insensitive). */ includesInsensitive?: InputMaybe; - /** Is null (if `true` is specified) or is not null (if `false` is specified). */ - isNull?: InputMaybe; - /** Less than the specified value. */ - lessThan?: InputMaybe; - /** Less than the specified value (case-insensitive). */ - lessThanInsensitive?: InputMaybe; - /** Less than or equal to the specified value. */ - lessThanOrEqualTo?: InputMaybe; - /** Less than or equal to the specified value (case-insensitive). */ - lessThanOrEqualToInsensitive?: InputMaybe; - /** Matches the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */ - like?: InputMaybe; - /** Matches the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */ - likeInsensitive?: InputMaybe; - /** Equal to the specified value, treating null like an ordinary value. */ - notDistinctFrom?: InputMaybe; - /** Equal to the specified value, treating null like an ordinary value (case-insensitive). */ - notDistinctFromInsensitive?: InputMaybe; - /** Does not end with the specified string (case-sensitive). */ - notEndsWith?: InputMaybe; - /** Does not end with the specified string (case-insensitive). */ - notEndsWithInsensitive?: InputMaybe; - /** Not equal to the specified value. */ - notEqualTo?: InputMaybe; - /** Not equal to the specified value (case-insensitive). */ - notEqualToInsensitive?: InputMaybe; - /** Not included in the specified list. */ - notIn?: InputMaybe>; - /** Not included in the specified list (case-insensitive). */ - notInInsensitive?: InputMaybe>; - /** Does not contain the specified string (case-sensitive). */ - notIncludes?: InputMaybe; - /** Does not contain the specified string (case-insensitive). */ - notIncludesInsensitive?: InputMaybe; - /** Does not match the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */ - notLike?: InputMaybe; - /** Does not match the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */ - notLikeInsensitive?: InputMaybe; - /** Does not start with the specified string (case-sensitive). */ - notStartsWith?: InputMaybe; - /** Does not start with the specified string (case-insensitive). */ - notStartsWithInsensitive?: InputMaybe; - /** Starts with the specified string (case-sensitive). */ - startsWith?: InputMaybe; - /** Starts with the specified string (case-insensitive). */ - startsWithInsensitive?: InputMaybe; }; /** The root subscription type: contains realtime events you can subscribe to with the `subscription` operation. */ @@ -2579,7 +2341,6 @@ export type TagAssignedTagsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -2610,8 +2371,6 @@ export type TagCondition = { export type TagFilter = { /** Checks for all expressions in this list. */ and?: InputMaybe>; - /** Filter by the object’s `id` field. */ - id?: InputMaybe; /** Negates the expression. */ not?: InputMaybe; /** Checks for any expressions in this list. */ @@ -2709,7 +2468,6 @@ export type TaskAssignedTagsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -2745,7 +2503,6 @@ export type TaskWorkOnTasksArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; - filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -2766,16 +2523,10 @@ export type TaskCondition = { export type TaskFilter = { /** Checks for all expressions in this list. */ and?: InputMaybe>; - /** Filter by the object’s `ctfId` field. */ - ctfId?: InputMaybe; - /** Filter by the object’s `id` field. */ - id?: InputMaybe; /** Negates the expression. */ not?: InputMaybe; /** Checks for any expressions in this list. */ or?: InputMaybe>; - /** Filter by the object’s `solved` field. */ - solved?: InputMaybe; /** Filter by the object’s `title` field. */ title?: InputMaybe; }; @@ -3282,20 +3033,6 @@ export type WorkOnTaskCondition = { taskId?: InputMaybe; }; -/** A filter to be used against `WorkOnTask` object types. All fields are combined with a logical ‘and.’ */ -export type WorkOnTaskFilter = { - /** Checks for all expressions in this list. */ - and?: InputMaybe>; - /** Negates the expression. */ - not?: InputMaybe; - /** Checks for any expressions in this list. */ - or?: InputMaybe>; - /** Filter by the object’s `profileId` field. */ - profileId?: InputMaybe; - /** Filter by the object’s `taskId` field. */ - taskId?: InputMaybe; -}; - /** An input for mutations affecting `WorkOnTask` */ export type WorkOnTaskInput = { active?: InputMaybe; @@ -3661,14 +3398,14 @@ export type UpdateCredentialsForCtfIdMutationVariables = Exact<{ export type UpdateCredentialsForCtfIdMutation = { __typename?: 'Mutation', updateCtfSecret?: { __typename?: 'UpdateCtfSecretPayload', ctfSecret?: { __typename?: 'CtfSecret', nodeId: string, credentials?: string | null } | null } | null }; -export type SettingsInfoFragment = { __typename?: 'Setting', nodeId: string, registrationAllowed: boolean, registrationPasswordAllowed: boolean, style: string }; +export type SettingsInfoFragment = { __typename?: 'Setting', nodeId: string, registrationAllowed: boolean, registrationPasswordAllowed: boolean, style: string, discordIntegrationEnabled: boolean }; -export type AdminSettingsInfoFragment = { __typename?: 'Setting', nodeId: string, registrationPassword: string, registrationDefaultRole: Role, icalPassword?: string | null, registrationAllowed: boolean, registrationPasswordAllowed: boolean, style: string }; +export type AdminSettingsInfoFragment = { __typename?: 'Setting', nodeId: string, registrationPassword: string, registrationDefaultRole: Role, icalPassword?: string | null, registrationAllowed: boolean, registrationPasswordAllowed: boolean, style: string, discordIntegrationEnabled: boolean }; export type GetSettingsQueryVariables = Exact<{ [key: string]: never; }>; -export type GetSettingsQuery = { __typename?: 'Query', settings?: { __typename?: 'SettingsConnection', nodes: Array<{ __typename?: 'Setting', nodeId: string, registrationAllowed: boolean, registrationPasswordAllowed: boolean, style: string }> } | null }; +export type GetSettingsQuery = { __typename?: 'Query', settings?: { __typename?: 'SettingsConnection', nodes: Array<{ __typename?: 'Setting', nodeId: string, registrationAllowed: boolean, registrationPasswordAllowed: boolean, style: string, discordIntegrationEnabled: boolean }> } | null }; export type GetIcalPasswordQueryVariables = Exact<{ [key: string]: never; }>; @@ -3678,7 +3415,7 @@ export type GetIcalPasswordQuery = { __typename?: 'Query', settings?: { __typena export type GetAdminSettingsQueryVariables = Exact<{ [key: string]: never; }>; -export type GetAdminSettingsQuery = { __typename?: 'Query', settings?: { __typename?: 'SettingsConnection', nodes: Array<{ __typename?: 'Setting', nodeId: string, registrationPassword: string, registrationDefaultRole: Role, icalPassword?: string | null, registrationAllowed: boolean, registrationPasswordAllowed: boolean, style: string }> } | null }; +export type GetAdminSettingsQuery = { __typename?: 'Query', settings?: { __typename?: 'SettingsConnection', nodes: Array<{ __typename?: 'Setting', nodeId: string, registrationPassword: string, registrationDefaultRole: Role, icalPassword?: string | null, registrationAllowed: boolean, registrationPasswordAllowed: boolean, style: string, discordIntegrationEnabled: boolean }> } | null }; export type UpdateSettingsMutationVariables = Exact<{ nodeId: Scalars['ID']; @@ -3686,7 +3423,7 @@ export type UpdateSettingsMutationVariables = Exact<{ }>; -export type UpdateSettingsMutation = { __typename?: 'Mutation', updateSettingByNodeId?: { __typename?: 'UpdateSettingPayload', setting?: { __typename?: 'Setting', nodeId: string, registrationPassword: string, registrationDefaultRole: Role, icalPassword?: string | null, registrationAllowed: boolean, registrationPasswordAllowed: boolean, style: string } | null } | null }; +export type UpdateSettingsMutation = { __typename?: 'Mutation', updateSettingByNodeId?: { __typename?: 'UpdateSettingPayload', setting?: { __typename?: 'Setting', nodeId: string, registrationPassword: string, registrationDefaultRole: Role, icalPassword?: string | null, registrationAllowed: boolean, registrationPasswordAllowed: boolean, style: string, discordIntegrationEnabled: boolean } | null } | null }; export type TagFragment = { __typename?: 'Tag', nodeId: string, id: number, tag: string }; @@ -3955,6 +3692,7 @@ export const SettingsInfoFragmentDoc = gql` registrationAllowed registrationPasswordAllowed style + discordIntegrationEnabled } `; export const AdminSettingsInfoFragmentDoc = gql` @@ -6127,6 +5865,7 @@ export const SettingsInfo = gql` registrationAllowed registrationPasswordAllowed style + discordIntegrationEnabled } `; export const AdminSettingsInfo = gql` From f2d12a2feb5a78d61bf2b33ddc9c2bbdd0dab8b6 Mon Sep 17 00:00:00 2001 From: Daan Breur Date: Wed, 17 Jul 2024 11:00:00 +0200 Subject: [PATCH 07/10] Spelling fixes. --- front/src/components/CTF/Guests.vue | 2 +- front/src/pages/Settings.vue | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/front/src/components/CTF/Guests.vue b/front/src/components/CTF/Guests.vue index 3d7cc97f..cc2539f6 100644 --- a/front/src/components/CTF/Guests.vue +++ b/front/src/components/CTF/Guests.vue @@ -35,7 +35,7 @@
Sync with Discord event
- The Discord integration is currently disabled on the backend. + The Discord integration is currently disabled.
diff --git a/front/src/pages/Settings.vue b/front/src/pages/Settings.vue index a6745089..d289a250 100644 --- a/front/src/pages/Settings.vue +++ b/front/src/pages/Settings.vue @@ -142,9 +142,7 @@ v-if="!settings.discordIntegrationEnabled" class="q-pt-none q-gutter-md" > -
- The Discord integration is currently disabled on the backend. -
+
The Discord integration is currently disabled.
Date: Wed, 17 Jul 2024 11:14:50 +0200 Subject: [PATCH 08/10] Simplified v-if to v-else --- front/src/components/CTF/Guests.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/front/src/components/CTF/Guests.vue b/front/src/components/CTF/Guests.vue index cc2539f6..8ec832d7 100644 --- a/front/src/components/CTF/Guests.vue +++ b/front/src/components/CTF/Guests.vue @@ -38,7 +38,7 @@ The Discord integration is currently disabled.
-
+
From 2832f8058d691ccc85178f48e25bb20b22c8285d Mon Sep 17 00:00:00 2001 From: Daan Breur Date: Wed, 17 Jul 2024 11:00:55 +0000 Subject: [PATCH 09/10] GraphQL schema files fixed. --- front/graphql.schema.json | 1956 ++++++++++++++++++++++++++++++-- front/src/generated/graphql.ts | 265 +++++ 2 files changed, 2105 insertions(+), 116 deletions(-) diff --git a/front/graphql.schema.json b/front/graphql.schema.json index a3bec448..dd9db357 100644 --- a/front/graphql.schema.json +++ b/front/graphql.schema.json @@ -220,6 +220,93 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "AssignedTagFilter", + "description": "A filter to be used against `AssignedTag` object types. All fields are combined with a logical ‘and.’", + "fields": null, + "inputFields": [ + { + "name": "and", + "description": "Checks for all expressions in this list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AssignedTagFilter", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "not", + "description": "Negates the expression.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AssignedTagFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "or", + "description": "Checks for any expressions in this list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AssignedTagFilter", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tagId", + "description": "Filter by the object’s `tagId` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "taskId", + "description": "Filter by the object’s `taskId` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "AssignedTagInput", @@ -456,6 +543,165 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "BooleanFilter", + "description": "A filter to be used against Boolean fields. All fields are combined with a logical ‘and.’", + "fields": null, + "inputFields": [ + { + "name": "distinctFrom", + "description": "Not equal to the specified value, treating null like an ordinary value.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "equalTo", + "description": "Equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThan", + "description": "Greater than the specified value.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThanOrEqualTo", + "description": "Greater than or equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "in", + "description": "Included in the specified list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isNull", + "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThan", + "description": "Less than the specified value.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThanOrEqualTo", + "description": "Less than or equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notDistinctFrom", + "description": "Equal to the specified value, treating null like an ordinary value.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notEqualTo", + "description": "Not equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notIn", + "description": "Not included in the specified list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "CancelWorkingOnInput", @@ -1822,6 +2068,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "InvitationFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -2346,6 +2604,42 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "endTime", + "description": "Filter by the object’s `endTime` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatetimeFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "granted", + "description": "Filter by the object’s `granted` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "BooleanFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "Filter by the object’s `id` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "not", "description": "Negates the expression.", @@ -2379,8 +2673,32 @@ "deprecationReason": null }, { - "name": "title", - "description": "Filter by the object’s `title` field.", + "name": "secretsId", + "description": "Filter by the object’s `secretsId` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startTime", + "description": "Filter by the object’s `startTime` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "DatetimeFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "title", + "description": "Filter by the object’s `title` field.", "type": { "kind": "INPUT_OBJECT", "name": "StringFilter", @@ -2968,6 +3286,81 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "CtfSecretFilter", + "description": "A filter to be used against `CtfSecret` object types. All fields are combined with a logical ‘and.’", + "fields": null, + "inputFields": [ + { + "name": "and", + "description": "Checks for all expressions in this list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CtfSecretFilter", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "Filter by the object’s `id` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "not", + "description": "Negates the expression.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CtfSecretFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "or", + "description": "Checks for any expressions in this list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CtfSecretFilter", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "CtfSecretPatch", @@ -3401,6 +3794,165 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "DatetimeFilter", + "description": "A filter to be used against Datetime fields. All fields are combined with a logical ‘and.’", + "fields": null, + "inputFields": [ + { + "name": "distinctFrom", + "description": "Not equal to the specified value, treating null like an ordinary value.", + "type": { + "kind": "SCALAR", + "name": "Datetime", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "equalTo", + "description": "Equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Datetime", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThan", + "description": "Greater than the specified value.", + "type": { + "kind": "SCALAR", + "name": "Datetime", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThanOrEqualTo", + "description": "Greater than or equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Datetime", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "in", + "description": "Included in the specified list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Datetime", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isNull", + "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThan", + "description": "Less than the specified value.", + "type": { + "kind": "SCALAR", + "name": "Datetime", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThanOrEqualTo", + "description": "Less than or equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Datetime", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notDistinctFrom", + "description": "Equal to the specified value, treating null like an ordinary value.", + "type": { + "kind": "SCALAR", + "name": "Datetime", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notEqualTo", + "description": "Not equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Datetime", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notIn", + "description": "Not included in the specified list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Datetime", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "DeleteAssignedTagByNodeIdInput", @@ -4570,44 +5122,203 @@ "possibleTypes": null }, { - "kind": "OBJECT", - "name": "Invitation", - "description": null, - "fields": [ + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "description": "A filter to be used against Int fields. All fields are combined with a logical ‘and.’", + "fields": null, + "inputFields": [ { - "name": "ctf", - "description": "Reads a single `Ctf` that is related to this `Invitation`.", - "args": [], + "name": "distinctFrom", + "description": "Not equal to the specified value, treating null like an ordinary value.", "type": { - "kind": "OBJECT", - "name": "Ctf", + "kind": "SCALAR", + "name": "Int", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "ctfId", - "description": null, - "args": [], + "name": "equalTo", + "description": "Equal to the specified value.", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "nodeId", - "description": "A globally unique identifier. Can be used in various places throughout the system to identify this single value.", - "args": [], + "name": "greaterThan", + "description": "Greater than the specified value.", "type": { - "kind": "NON_NULL", + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThanOrEqualTo", + "description": "Greater than or equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "in", + "description": "Included in the specified list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isNull", + "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThan", + "description": "Less than the specified value.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThanOrEqualTo", + "description": "Less than or equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notDistinctFrom", + "description": "Equal to the specified value, treating null like an ordinary value.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notEqualTo", + "description": "Not equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notIn", + "description": "Not included in the specified list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Invitation", + "description": null, + "fields": [ + { + "name": "ctf", + "description": "Reads a single `Ctf` that is related to this `Invitation`.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Ctf", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ctfId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nodeId", + "description": "A globally unique identifier. Can be used in various places throughout the system to identify this single value.", + "args": [], + "type": { + "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", @@ -4693,6 +5404,93 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "InvitationFilter", + "description": "A filter to be used against `Invitation` object types. All fields are combined with a logical ‘and.’", + "fields": null, + "inputFields": [ + { + "name": "and", + "description": "Checks for all expressions in this list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InvitationFilter", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ctfId", + "description": "Filter by the object’s `ctfId` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "not", + "description": "Negates the expression.", + "type": { + "kind": "INPUT_OBJECT", + "name": "InvitationFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "or", + "description": "Checks for any expressions in this list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InvitationFilter", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "profileId", + "description": "Filter by the object’s `profileId` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "InvitationInput", @@ -6906,6 +7704,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "InvitationFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -7196,6 +8006,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "WorkOnTaskFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -7493,11 +8315,11 @@ "deprecationReason": null }, { - "name": "not", - "description": "Negates the expression.", + "name": "id", + "description": "Filter by the object’s `id` field.", "type": { "kind": "INPUT_OBJECT", - "name": "ProfileFilter", + "name": "IntFilter", "ofType": null }, "defaultValue": null, @@ -7505,8 +8327,20 @@ "deprecationReason": null }, { - "name": "or", - "description": "Checks for any expressions in this list.", + "name": "not", + "description": "Negates the expression.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ProfileFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "or", + "description": "Checks for any expressions in this list.", "type": { "kind": "LIST", "name": null, @@ -7524,6 +8358,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "role", + "description": "Filter by the object’s `role` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "RoleFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "username", "description": "Filter by the object’s `username` field.", @@ -8313,6 +9159,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AssignedTagFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -8534,6 +9392,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CtfSecretFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -8744,6 +9614,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ProfileFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -8817,6 +9699,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CtfFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -8976,6 +9870,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "InvitationFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -9138,6 +10044,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CtfFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -10245,6 +11163,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "WorkOnTaskFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -10946,6 +11876,165 @@ ], "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "RoleFilter", + "description": "A filter to be used against Role fields. All fields are combined with a logical ‘and.’", + "fields": null, + "inputFields": [ + { + "name": "distinctFrom", + "description": "Not equal to the specified value, treating null like an ordinary value.", + "type": { + "kind": "ENUM", + "name": "Role", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "equalTo", + "description": "Equal to the specified value.", + "type": { + "kind": "ENUM", + "name": "Role", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThan", + "description": "Greater than the specified value.", + "type": { + "kind": "ENUM", + "name": "Role", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThanOrEqualTo", + "description": "Greater than or equal to the specified value.", + "type": { + "kind": "ENUM", + "name": "Role", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "in", + "description": "Included in the specified list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "Role", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isNull", + "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThan", + "description": "Less than the specified value.", + "type": { + "kind": "ENUM", + "name": "Role", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThanOrEqualTo", + "description": "Less than or equal to the specified value.", + "type": { + "kind": "ENUM", + "name": "Role", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notDistinctFrom", + "description": "Equal to the specified value, treating null like an ordinary value.", + "type": { + "kind": "ENUM", + "name": "Role", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notEqualTo", + "description": "Not equal to the specified value.", + "type": { + "kind": "ENUM", + "name": "Role", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notIn", + "description": "Not included in the specified list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "Role", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "SetDiscordEventLinkInput", @@ -11585,141 +12674,605 @@ "description": null, "type": { "kind": "SCALAR", - "name": "Int", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "StopWorkingOnPayload", + "description": "The output of our `stopWorkingOn` mutation.", + "fields": [ + { + "name": "clientMutationId", + "description": "The exact same `clientMutationId` that was provided in the mutation input,\nunchanged and unused. May be used by a client to track mutations.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "profile", + "description": "Reads a single `Profile` that is related to this `WorkOnTask`.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Profile", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "query", + "description": "Our root query field type. Allows us to run any query from our mutation payload.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Query", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "task", + "description": "Reads a single `Task` that is related to this `WorkOnTask`.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "Task", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "workOnTask", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "WorkOnTask", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "workOnTaskEdge", + "description": "An edge for our `WorkOnTask`. May be used by Relay 1.", + "args": [ + { + "name": "orderBy", + "description": "The method to use when ordering `WorkOnTask`.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "WorkOnTasksOrderBy", + "ofType": null + } + } + }, + "defaultValue": "[PRIMARY_KEY_ASC]", + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "OBJECT", + "name": "WorkOnTasksEdge", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "StringFilter", + "description": "A filter to be used against String fields. All fields are combined with a logical ‘and.’", + "fields": null, + "inputFields": [ + { + "name": "distinctFrom", + "description": "Not equal to the specified value, treating null like an ordinary value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "distinctFromInsensitive", + "description": "Not equal to the specified value, treating null like an ordinary value (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "endsWith", + "description": "Ends with the specified string (case-sensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "endsWithInsensitive", + "description": "Ends with the specified string (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "equalTo", + "description": "Equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "equalToInsensitive", + "description": "Equal to the specified value (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThan", + "description": "Greater than the specified value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThanInsensitive", + "description": "Greater than the specified value (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThanOrEqualTo", + "description": "Greater than or equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "greaterThanOrEqualToInsensitive", + "description": "Greater than or equal to the specified value (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "in", + "description": "Included in the specified list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inInsensitive", + "description": "Included in the specified list (case-insensitive).", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "includes", + "description": "Contains the specified string (case-sensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "includesInsensitive", + "description": "Contains the specified string (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isNull", + "description": "Is null (if `true` is specified) or is not null (if `false` is specified).", + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThan", + "description": "Less than the specified value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThanInsensitive", + "description": "Less than the specified value (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThanOrEqualTo", + "description": "Less than or equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lessThanOrEqualToInsensitive", + "description": "Less than or equal to the specified value (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "like", + "description": "Matches the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "likeInsensitive", + "description": "Matches the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notDistinctFrom", + "description": "Equal to the specified value, treating null like an ordinary value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notDistinctFromInsensitive", + "description": "Equal to the specified value, treating null like an ordinary value (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notEndsWith", + "description": "Does not end with the specified string (case-sensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notEndsWithInsensitive", + "description": "Does not end with the specified string (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notEqualTo", + "description": "Not equal to the specified value.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notEqualToInsensitive", + "description": "Not equal to the specified value (case-insensitive).", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notIn", + "description": "Not included in the specified list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notInInsensitive", + "description": "Not included in the specified list (case-insensitive).", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "notIncludes", + "description": "Does not contain the specified string (case-sensitive).", + "type": { + "kind": "SCALAR", + "name": "String", "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "StopWorkingOnPayload", - "description": "The output of our `stopWorkingOn` mutation.", - "fields": [ + }, { - "name": "clientMutationId", - "description": "The exact same `clientMutationId` that was provided in the mutation input,\nunchanged and unused. May be used by a client to track mutations.", - "args": [], + "name": "notIncludesInsensitive", + "description": "Does not contain the specified string (case-insensitive).", "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "profile", - "description": "Reads a single `Profile` that is related to this `WorkOnTask`.", - "args": [], + "name": "notLike", + "description": "Does not match the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", "type": { - "kind": "OBJECT", - "name": "Profile", + "kind": "SCALAR", + "name": "String", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", - "args": [], + "name": "notLikeInsensitive", + "description": "Does not match the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters.", "type": { - "kind": "OBJECT", - "name": "Query", + "kind": "SCALAR", + "name": "String", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "task", - "description": "Reads a single `Task` that is related to this `WorkOnTask`.", - "args": [], + "name": "notStartsWith", + "description": "Does not start with the specified string (case-sensitive).", "type": { - "kind": "OBJECT", - "name": "Task", + "kind": "SCALAR", + "name": "String", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "workOnTask", - "description": null, - "args": [], + "name": "notStartsWithInsensitive", + "description": "Does not start with the specified string (case-insensitive).", "type": { - "kind": "OBJECT", - "name": "WorkOnTask", + "kind": "SCALAR", + "name": "String", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "workOnTaskEdge", - "description": "An edge for our `WorkOnTask`. May be used by Relay 1.", - "args": [ - { - "name": "orderBy", - "description": "The method to use when ordering `WorkOnTask`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "WorkOnTasksOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]", - "isDeprecated": false, - "deprecationReason": null - } - ], + "name": "startsWith", + "description": "Starts with the specified string (case-sensitive).", "type": { - "kind": "OBJECT", - "name": "WorkOnTasksEdge", + "kind": "SCALAR", + "name": "String", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "String", - "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "StringFilter", - "description": "A filter to be used against String fields. All fields are combined with a logical ‘and.’", - "fields": null, - "inputFields": [ + }, { - "name": "includesInsensitive", - "description": "Contains the specified string (case-insensitive).", + "name": "startsWithInsensitive", + "description": "Starts with the specified string (case-insensitive).", "type": { "kind": "SCALAR", "name": "String", @@ -11859,6 +13412,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AssignedTagFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -12170,6 +13735,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "id", + "description": "Filter by the object’s `id` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "not", "description": "Negates the expression.", @@ -12616,6 +14193,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AssignedTagFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -13103,6 +14692,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "filter", + "description": "A filter to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "WorkOnTaskFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -13257,6 +14858,30 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "ctfId", + "description": "Filter by the object’s `ctfId` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": "Filter by the object’s `id` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "not", "description": "Negates the expression.", @@ -13289,6 +14914,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "solved", + "description": "Filter by the object’s `solved` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "BooleanFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "title", "description": "Filter by the object’s `title` field.", @@ -15650,6 +17287,93 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "WorkOnTaskFilter", + "description": "A filter to be used against `WorkOnTask` object types. All fields are combined with a logical ‘and.’", + "fields": null, + "inputFields": [ + { + "name": "and", + "description": "Checks for all expressions in this list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WorkOnTaskFilter", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "not", + "description": "Negates the expression.", + "type": { + "kind": "INPUT_OBJECT", + "name": "WorkOnTaskFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "or", + "description": "Checks for any expressions in this list.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WorkOnTaskFilter", + "ofType": null + } + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "profileId", + "description": "Filter by the object’s `profileId` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "taskId", + "description": "Filter by the object’s `taskId` field.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IntFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "WorkOnTaskInput", diff --git a/front/src/generated/graphql.ts b/front/src/generated/graphql.ts index bd9a5c0f..8f374bea 100644 --- a/front/src/generated/graphql.ts +++ b/front/src/generated/graphql.ts @@ -67,6 +67,20 @@ export type AssignedTagCondition = { taskId?: InputMaybe; }; +/** A filter to be used against `AssignedTag` object types. All fields are combined with a logical ‘and.’ */ +export type AssignedTagFilter = { + /** Checks for all expressions in this list. */ + and?: InputMaybe>; + /** Negates the expression. */ + not?: InputMaybe; + /** Checks for any expressions in this list. */ + or?: InputMaybe>; + /** Filter by the object’s `tagId` field. */ + tagId?: InputMaybe; + /** Filter by the object’s `taskId` field. */ + taskId?: InputMaybe; +}; + /** An input for mutations affecting `AssignedTag` */ export type AssignedTagInput = { tagId: Scalars['Int']; @@ -106,6 +120,32 @@ export enum AssignedTagsOrderBy { TaskIdDesc = 'TASK_ID_DESC' } +/** A filter to be used against Boolean fields. All fields are combined with a logical ‘and.’ */ +export type BooleanFilter = { + /** Not equal to the specified value, treating null like an ordinary value. */ + distinctFrom?: InputMaybe; + /** Equal to the specified value. */ + equalTo?: InputMaybe; + /** Greater than the specified value. */ + greaterThan?: InputMaybe; + /** Greater than or equal to the specified value. */ + greaterThanOrEqualTo?: InputMaybe; + /** Included in the specified list. */ + in?: InputMaybe>; + /** Is null (if `true` is specified) or is not null (if `false` is specified). */ + isNull?: InputMaybe; + /** Less than the specified value. */ + lessThan?: InputMaybe; + /** Less than or equal to the specified value. */ + lessThanOrEqualTo?: InputMaybe; + /** Equal to the specified value, treating null like an ordinary value. */ + notDistinctFrom?: InputMaybe; + /** Not equal to the specified value. */ + notEqualTo?: InputMaybe; + /** Not included in the specified list. */ + notIn?: InputMaybe>; +}; + /** All input for the `cancelWorkingOn` mutation. */ export type CancelWorkingOnInput = { /** @@ -440,6 +480,7 @@ export type CtfInvitationsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -488,10 +529,20 @@ export type CtfCondition = { export type CtfFilter = { /** Checks for all expressions in this list. */ and?: InputMaybe>; + /** Filter by the object’s `endTime` field. */ + endTime?: InputMaybe; + /** Filter by the object’s `granted` field. */ + granted?: InputMaybe; + /** Filter by the object’s `id` field. */ + id?: InputMaybe; /** Negates the expression. */ not?: InputMaybe; /** Checks for any expressions in this list. */ or?: InputMaybe>; + /** Filter by the object’s `secretsId` field. */ + secretsId?: InputMaybe; + /** Filter by the object’s `startTime` field. */ + startTime?: InputMaybe; /** Filter by the object’s `title` field. */ title?: InputMaybe; }; @@ -574,6 +625,18 @@ export type CtfSecretCondition = { id?: InputMaybe; }; +/** A filter to be used against `CtfSecret` object types. All fields are combined with a logical ‘and.’ */ +export type CtfSecretFilter = { + /** Checks for all expressions in this list. */ + and?: InputMaybe>; + /** Filter by the object’s `id` field. */ + id?: InputMaybe; + /** Negates the expression. */ + not?: InputMaybe; + /** Checks for any expressions in this list. */ + or?: InputMaybe>; +}; + /** Represents an update to a `CtfSecret`. Fields that are set will be updated. */ export type CtfSecretPatch = { credentials?: InputMaybe; @@ -649,6 +712,32 @@ export enum CtfsOrderBy { TitleDesc = 'TITLE_DESC' } +/** A filter to be used against Datetime fields. All fields are combined with a logical ‘and.’ */ +export type DatetimeFilter = { + /** Not equal to the specified value, treating null like an ordinary value. */ + distinctFrom?: InputMaybe; + /** Equal to the specified value. */ + equalTo?: InputMaybe; + /** Greater than the specified value. */ + greaterThan?: InputMaybe; + /** Greater than or equal to the specified value. */ + greaterThanOrEqualTo?: InputMaybe; + /** Included in the specified list. */ + in?: InputMaybe>; + /** Is null (if `true` is specified) or is not null (if `false` is specified). */ + isNull?: InputMaybe; + /** Less than the specified value. */ + lessThan?: InputMaybe; + /** Less than or equal to the specified value. */ + lessThanOrEqualTo?: InputMaybe; + /** Equal to the specified value, treating null like an ordinary value. */ + notDistinctFrom?: InputMaybe; + /** Not equal to the specified value. */ + notEqualTo?: InputMaybe; + /** Not included in the specified list. */ + notIn?: InputMaybe>; +}; + /** All input for the `deleteAssignedTagByNodeId` mutation. */ export type DeleteAssignedTagByNodeIdInput = { /** @@ -921,6 +1010,32 @@ export type ImportCtfPayload = { query?: Maybe; }; +/** A filter to be used against Int fields. All fields are combined with a logical ‘and.’ */ +export type IntFilter = { + /** Not equal to the specified value, treating null like an ordinary value. */ + distinctFrom?: InputMaybe; + /** Equal to the specified value. */ + equalTo?: InputMaybe; + /** Greater than the specified value. */ + greaterThan?: InputMaybe; + /** Greater than or equal to the specified value. */ + greaterThanOrEqualTo?: InputMaybe; + /** Included in the specified list. */ + in?: InputMaybe>; + /** Is null (if `true` is specified) or is not null (if `false` is specified). */ + isNull?: InputMaybe; + /** Less than the specified value. */ + lessThan?: InputMaybe; + /** Less than or equal to the specified value. */ + lessThanOrEqualTo?: InputMaybe; + /** Equal to the specified value, treating null like an ordinary value. */ + notDistinctFrom?: InputMaybe; + /** Not equal to the specified value. */ + notEqualTo?: InputMaybe; + /** Not included in the specified list. */ + notIn?: InputMaybe>; +}; + export type Invitation = Node & { __typename?: 'Invitation'; /** Reads a single `Ctf` that is related to this `Invitation`. */ @@ -944,6 +1059,20 @@ export type InvitationCondition = { profileId?: InputMaybe; }; +/** A filter to be used against `Invitation` object types. All fields are combined with a logical ‘and.’ */ +export type InvitationFilter = { + /** Checks for all expressions in this list. */ + and?: InputMaybe>; + /** Filter by the object’s `ctfId` field. */ + ctfId?: InputMaybe; + /** Negates the expression. */ + not?: InputMaybe; + /** Checks for any expressions in this list. */ + or?: InputMaybe>; + /** Filter by the object’s `profileId` field. */ + profileId?: InputMaybe; +}; + /** An input for mutations affecting `Invitation` */ export type InvitationInput = { ctfId: Scalars['Int']; @@ -1453,6 +1582,7 @@ export type ProfileInvitationsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1476,6 +1606,7 @@ export type ProfileWorkOnTasksArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1520,10 +1651,14 @@ export type ProfileFilter = { and?: InputMaybe>; /** Filter by the object’s `discordId` field. */ discordId?: InputMaybe; + /** Filter by the object’s `id` field. */ + id?: InputMaybe; /** Negates the expression. */ not?: InputMaybe; /** Checks for any expressions in this list. */ or?: InputMaybe>; + /** Filter by the object’s `role` field. */ + role?: InputMaybe; /** Filter by the object’s `username` field. */ username?: InputMaybe; }; @@ -1729,6 +1864,7 @@ export type QueryAssignedTagsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1765,6 +1901,7 @@ export type QueryCtfSecretsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1789,6 +1926,7 @@ export type QueryCtfsArgs = { export type QueryGuestsArgs = { after?: InputMaybe; before?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1799,6 +1937,7 @@ export type QueryGuestsArgs = { export type QueryIncomingCtfArgs = { after?: InputMaybe; before?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1823,6 +1962,7 @@ export type QueryInvitationsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1840,6 +1980,7 @@ export type QueryNodeArgs = { export type QueryPastCtfArgs = { after?: InputMaybe; before?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -1996,6 +2137,7 @@ export type QueryWorkOnTasksArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -2157,6 +2299,32 @@ export enum Role { UserMember = 'USER_MEMBER' } +/** A filter to be used against Role fields. All fields are combined with a logical ‘and.’ */ +export type RoleFilter = { + /** Not equal to the specified value, treating null like an ordinary value. */ + distinctFrom?: InputMaybe; + /** Equal to the specified value. */ + equalTo?: InputMaybe; + /** Greater than the specified value. */ + greaterThan?: InputMaybe; + /** Greater than or equal to the specified value. */ + greaterThanOrEqualTo?: InputMaybe; + /** Included in the specified list. */ + in?: InputMaybe>; + /** Is null (if `true` is specified) or is not null (if `false` is specified). */ + isNull?: InputMaybe; + /** Less than the specified value. */ + lessThan?: InputMaybe; + /** Less than or equal to the specified value. */ + lessThanOrEqualTo?: InputMaybe; + /** Equal to the specified value, treating null like an ordinary value. */ + notDistinctFrom?: InputMaybe; + /** Not equal to the specified value. */ + notEqualTo?: InputMaybe; + /** Not included in the specified list. */ + notIn?: InputMaybe>; +}; + /** All input for the `setDiscordEventLink` mutation. */ export type SetDiscordEventLinkInput = { /** @@ -2305,8 +2473,80 @@ export type StopWorkingOnPayloadWorkOnTaskEdgeArgs = { /** A filter to be used against String fields. All fields are combined with a logical ‘and.’ */ export type StringFilter = { + /** Not equal to the specified value, treating null like an ordinary value. */ + distinctFrom?: InputMaybe; + /** Not equal to the specified value, treating null like an ordinary value (case-insensitive). */ + distinctFromInsensitive?: InputMaybe; + /** Ends with the specified string (case-sensitive). */ + endsWith?: InputMaybe; + /** Ends with the specified string (case-insensitive). */ + endsWithInsensitive?: InputMaybe; + /** Equal to the specified value. */ + equalTo?: InputMaybe; + /** Equal to the specified value (case-insensitive). */ + equalToInsensitive?: InputMaybe; + /** Greater than the specified value. */ + greaterThan?: InputMaybe; + /** Greater than the specified value (case-insensitive). */ + greaterThanInsensitive?: InputMaybe; + /** Greater than or equal to the specified value. */ + greaterThanOrEqualTo?: InputMaybe; + /** Greater than or equal to the specified value (case-insensitive). */ + greaterThanOrEqualToInsensitive?: InputMaybe; + /** Included in the specified list. */ + in?: InputMaybe>; + /** Included in the specified list (case-insensitive). */ + inInsensitive?: InputMaybe>; + /** Contains the specified string (case-sensitive). */ + includes?: InputMaybe; /** Contains the specified string (case-insensitive). */ includesInsensitive?: InputMaybe; + /** Is null (if `true` is specified) or is not null (if `false` is specified). */ + isNull?: InputMaybe; + /** Less than the specified value. */ + lessThan?: InputMaybe; + /** Less than the specified value (case-insensitive). */ + lessThanInsensitive?: InputMaybe; + /** Less than or equal to the specified value. */ + lessThanOrEqualTo?: InputMaybe; + /** Less than or equal to the specified value (case-insensitive). */ + lessThanOrEqualToInsensitive?: InputMaybe; + /** Matches the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */ + like?: InputMaybe; + /** Matches the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */ + likeInsensitive?: InputMaybe; + /** Equal to the specified value, treating null like an ordinary value. */ + notDistinctFrom?: InputMaybe; + /** Equal to the specified value, treating null like an ordinary value (case-insensitive). */ + notDistinctFromInsensitive?: InputMaybe; + /** Does not end with the specified string (case-sensitive). */ + notEndsWith?: InputMaybe; + /** Does not end with the specified string (case-insensitive). */ + notEndsWithInsensitive?: InputMaybe; + /** Not equal to the specified value. */ + notEqualTo?: InputMaybe; + /** Not equal to the specified value (case-insensitive). */ + notEqualToInsensitive?: InputMaybe; + /** Not included in the specified list. */ + notIn?: InputMaybe>; + /** Not included in the specified list (case-insensitive). */ + notInInsensitive?: InputMaybe>; + /** Does not contain the specified string (case-sensitive). */ + notIncludes?: InputMaybe; + /** Does not contain the specified string (case-insensitive). */ + notIncludesInsensitive?: InputMaybe; + /** Does not match the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */ + notLike?: InputMaybe; + /** Does not match the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. */ + notLikeInsensitive?: InputMaybe; + /** Does not start with the specified string (case-sensitive). */ + notStartsWith?: InputMaybe; + /** Does not start with the specified string (case-insensitive). */ + notStartsWithInsensitive?: InputMaybe; + /** Starts with the specified string (case-sensitive). */ + startsWith?: InputMaybe; + /** Starts with the specified string (case-insensitive). */ + startsWithInsensitive?: InputMaybe; }; /** The root subscription type: contains realtime events you can subscribe to with the `subscription` operation. */ @@ -2341,6 +2581,7 @@ export type TagAssignedTagsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -2371,6 +2612,8 @@ export type TagCondition = { export type TagFilter = { /** Checks for all expressions in this list. */ and?: InputMaybe>; + /** Filter by the object’s `id` field. */ + id?: InputMaybe; /** Negates the expression. */ not?: InputMaybe; /** Checks for any expressions in this list. */ @@ -2468,6 +2711,7 @@ export type TaskAssignedTagsArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -2503,6 +2747,7 @@ export type TaskWorkOnTasksArgs = { after?: InputMaybe; before?: InputMaybe; condition?: InputMaybe; + filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; offset?: InputMaybe; @@ -2523,10 +2768,16 @@ export type TaskCondition = { export type TaskFilter = { /** Checks for all expressions in this list. */ and?: InputMaybe>; + /** Filter by the object’s `ctfId` field. */ + ctfId?: InputMaybe; + /** Filter by the object’s `id` field. */ + id?: InputMaybe; /** Negates the expression. */ not?: InputMaybe; /** Checks for any expressions in this list. */ or?: InputMaybe>; + /** Filter by the object’s `solved` field. */ + solved?: InputMaybe; /** Filter by the object’s `title` field. */ title?: InputMaybe; }; @@ -3033,6 +3284,20 @@ export type WorkOnTaskCondition = { taskId?: InputMaybe; }; +/** A filter to be used against `WorkOnTask` object types. All fields are combined with a logical ‘and.’ */ +export type WorkOnTaskFilter = { + /** Checks for all expressions in this list. */ + and?: InputMaybe>; + /** Negates the expression. */ + not?: InputMaybe; + /** Checks for any expressions in this list. */ + or?: InputMaybe>; + /** Filter by the object’s `profileId` field. */ + profileId?: InputMaybe; + /** Filter by the object’s `taskId` field. */ + taskId?: InputMaybe; +}; + /** An input for mutations affecting `WorkOnTask` */ export type WorkOnTaskInput = { active?: InputMaybe; From 88aec882cbda1d856a2dff6fc22dd01f1105db59 Mon Sep 17 00:00:00 2001 From: Daan Breur Date: Wed, 17 Jul 2024 18:18:22 +0200 Subject: [PATCH 10/10] Fixes that user_admin could write to ctfnote.settings.discord_integration_enabled --- api/migrations/54-add-discord-integration-enabled.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api/migrations/54-add-discord-integration-enabled.sql b/api/migrations/54-add-discord-integration-enabled.sql index 5fa98cfc..e94c5db8 100644 --- a/api/migrations/54-add-discord-integration-enabled.sql +++ b/api/migrations/54-add-discord-integration-enabled.sql @@ -2,6 +2,7 @@ ALTER TABLE ctfnote.settings ADD COLUMN "discord_integration_enabled" boolean NOT NULL DEFAULT FALSE; GRANT SELECT ("discord_integration_enabled") ON ctfnote.settings TO user_anonymous; -REVOKE UPDATE ("discord_integration_enabled") ON ctfnote.settings FROM user_admin; +REVOKE UPDATE ON ctfnote.settings FROM user_admin; +GRANT UPDATE (unique_id, registration_allowed, registration_password_allowed, registration_password, registration_default_role, style, ical_password) ON ctfnote.settings TO user_admin; GRANT UPDATE ("discord_integration_enabled") ON ctfnote.settings TO user_postgraphile;