diff --git a/api/migrations/42-add-last-active.sql b/api/migrations/42-add-last-active.sql new file mode 100644 index 000000000..b58fc6f71 --- /dev/null +++ b/api/migrations/42-add-last-active.sql @@ -0,0 +1,89 @@ +ALTER TABLE ctfnote.profile +ADD COLUMN "lastactive" timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP; + +--- Security +DROP POLICY select_profile ON ctfnote.profile; +CREATE POLICY select_profile_admin ON ctfnote.profile + FOR SELECT TO user_admin + USING (TRUE); + +CREATE POLICY select_profile ON ctfnote.profile + FOR SELECT TO user_guest + USING (id = ctfnote_private.user_id ()); + +CREATE OR REPLACE VIEW ctfnote.public_profile AS +SELECT + "ctfnote"."profile"."id" as id, + "ctfnote"."profile"."description", + "ctfnote"."profile"."color", + "ctfnote"."profile"."username", + "ctfnote_private"."user"."role", + CONCAT('profile-', "ctfnote"."profile"."id") as node_id +FROM ctfnote.profile +INNER JOIN "ctfnote_private"."user" ON "ctfnote_private"."user"."id" = "ctfnote"."profile"."id" +ORDER BY id; + +GRANT SELECT on ctfnote.public_profile TO user_guest; + +CREATE OR REPLACE FUNCTION ctfnote_private.notify_profile_edit () + RETURNS TRIGGER + AS $$ +BEGIN + CASE TG_OP + WHEN 'INSERT' THEN + PERFORM + ctfnote_private.notify ('created', 'profiles', (SELECT id FROM ctfnote.public_profile WHERE id = NEW.id)); RETURN NULL; + WHEN 'UPDATE' THEN + PERFORM + ctfnote_private.notify ('update', 'profiles', (SELECT id FROM ctfnote.public_profile WHERE id = NEW.id)); RETURN NULL; + WHEN 'DELETE' THEN + PERFORM + ctfnote_private.notify ('deleted', 'profiles', (SELECT id FROM ctfnote.public_profile WHERE id = OLD.id)); RETURN NULL; + END CASE; +END +$$ VOLATILE +LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION ctfnote_private.notify_role_edit () + RETURNS TRIGGER + AS $$ +BEGIN + CASE TG_OP + WHEN 'UPDATE' THEN + PERFORM + ctfnote_private.notify ('update', 'profiles', (SELECT id FROM ctfnote.public_profile WHERE id = NEW.id)); RETURN NULL; + END CASE; +END +$$ VOLATILE +LANGUAGE plpgsql; + +/* UpdateLastActive */ +CREATE FUNCTION ctfnote.update_last_active () + RETURNS void + AS $$ + BEGIN + UPDATE ctfnote.profile + SET lastactive = now() + WHERE id = ctfnote_private.user_id (); + END; +$$ +LANGUAGE plpgsql VOLATILE +SECURITY DEFINER; +GRANT EXECUTE ON FUNCTION ctfnote.update_last_active () TO user_guest; + + +CREATE OR REPLACE FUNCTION ctfnote.me () + RETURNS ctfnote.profile + AS $$ + SELECT ctfnote.update_last_active(); + SELECT + * + FROM + ctfnote.profile + WHERE + id = ctfnote_private.user_id () + LIMIT 1; + +$$ +LANGUAGE SQL +STRICT STABLE; diff --git a/api/src/index.ts b/api/src/index.ts index 2b01cf73a..a98470c8f 100644 --- a/api/src/index.ts +++ b/api/src/index.ts @@ -15,6 +15,7 @@ import importCtfPlugin from "./plugins/importCtf"; import uploadLogoPlugin from "./plugins/uploadLogo"; import uploadScalar from "./plugins/uploadScalar"; import ConnectionFilterPlugin from "postgraphile-plugin-connection-filter"; +import ProfileSubscriptionPlugin from "./plugins/ProfileSubscriptionPlugin"; function getDbUrl(role: "user" | "admin") { const login = config.db[role].login; @@ -45,6 +46,7 @@ function createOptions() { uploadLogoPlugin, createTasKPlugin, ConnectionFilterPlugin, + ProfileSubscriptionPlugin, ], ownerConnectionString: getDbUrl("admin"), enableQueryBatching: true, diff --git a/api/src/plugins/ProfileSubscriptionPlugin.ts b/api/src/plugins/ProfileSubscriptionPlugin.ts new file mode 100644 index 000000000..501c9f1ac --- /dev/null +++ b/api/src/plugins/ProfileSubscriptionPlugin.ts @@ -0,0 +1,38 @@ +import { makeExtendSchemaPlugin, gql } from "graphile-utils"; +import { Context } from "./uploadLogo"; + +export default makeExtendSchemaPlugin((build) => { + const { pgSql: sql } = build; + return { + typeDefs: gql` + type PublicProfileSubscriptionPayload { + publicProfile: PublicProfile + event: String + } + + extend type Subscription { + currentProfileUpdated: PublicProfileSubscriptionPayload + @pgSubscription(topic: "postgraphile:update:profiles") + currentProfileCreated: PublicProfileSubscriptionPayload + @pgSubscription(topic: "postgraphile:create:profiles") + currentProfileDeleted: PublicProfileSubscriptionPayload + @pgSubscription(topic: "postgraphile:delete:profiles") + } + `, + resolvers: { + PublicProfileSubscriptionPayload: { + publicProfile: async (event, _args, _context: Context, resolveInfo) => { + const rows = await resolveInfo.graphile.selectGraphQLResultFromTable( + sql.fragment`ctfnote.public_profile`, + (tableAlias, sqlBuilder) => { + sqlBuilder.where( + sql.fragment`${tableAlias}.id = ${sql.value(event.__node__[1])}` + ); + } + ); + return rows[0]; + }, + }, + }, + }; +}); diff --git a/api/src/plugins/uploadLogo.ts b/api/src/plugins/uploadLogo.ts index f81acb06c..e18d1c592 100644 --- a/api/src/plugins/uploadLogo.ts +++ b/api/src/plugins/uploadLogo.ts @@ -16,7 +16,7 @@ function isAdmin(pgRole: string): boolean { const UPLOAD_DIR_NAME = "uploads"; -interface Context { +export interface Context { pgClient: Client; pgRole: string; jwtClaims: { diff --git a/front/graphql.schema.json b/front/graphql.schema.json index b8c1bd557..947da9c4b 100644 --- a/front/graphql.schema.json +++ b/front/graphql.schema.json @@ -20,165 +20,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": "ChangePasswordInput", @@ -985,18 +826,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.", @@ -1400,42 +1229,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.", @@ -1468,30 +1261,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.", @@ -1942,91 +1711,16 @@ }, { "kind": "INPUT_OBJECT", - "name": "CtfSecretFilter", - "description": "A filter to be used against `CtfSecret` object types. All fields are combined with a logical ‘and.’", + "name": "CtfSecretPatch", + "description": "Represents an update to a `CtfSecret`. Fields that are set will be updated.", "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.", + "name": "credentials", + "description": null, "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", - "description": "Represents an update to a `CtfSecret`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "credentials", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", + "kind": "SCALAR", + "name": "String", "ofType": null }, "defaultValue": null, @@ -2448,165 +2142,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": "DeleteCtfByNodeIdInput", @@ -3356,94 +2891,103 @@ "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.", + "name": "nodeId", + "description": "A globally unique identifier. Can be used in various places throughout the system to identify this single value.", + "args": [], "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", + "name": "profile", + "description": "Reads a single `Profile` that is related to this `Invitation`.", + "args": [], "type": { - "kind": "SCALAR", - "name": "Int", + "kind": "OBJECT", + "name": "Profile", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "in", - "description": "Included in the specified list.", + "name": "profileId", + "description": null, + "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } + "kind": "SCALAR", + "name": "Int", + "ofType": null } }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [ { - "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 - }, + "kind": "INTERFACE", + "name": "Node", + "ofType": null + } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "InvitationCondition", + "description": "A condition to be used against `Invitation` object types. All fields are tested\nfor equality and combined with a logical ‘and.’", + "fields": null, + "inputFields": [ { - "name": "lessThan", - "description": "Less than the specified value.", + "name": "ctfId", + "description": "Checks for equality with the object’s `ctfId` field.", "type": { "kind": "SCALAR", "name": "Int", @@ -3454,8 +2998,8 @@ "deprecationReason": null }, { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", + "name": "profileId", + "description": "Checks for equality with the object’s `profileId` field.", "type": { "kind": "SCALAR", "name": "Int", @@ -3464,261 +3008,6 @@ "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", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "profile", - "description": "Reads a single `Profile` that is related to this `Invitation`.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Profile", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "profileId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "InvitationCondition", - "description": "A condition to be used against `Invitation` object types. All fields are tested\nfor equality and combined with a logical ‘and.’", - "fields": null, - "inputFields": [ - { - "name": "ctfId", - "description": "Checks for equality with the object’s `ctfId` field.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "profileId", - "description": "Checks for equality with the object’s `profileId` field.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "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, @@ -4866,8 +4155,8 @@ "deprecationReason": null }, { - "name": "updateProfile", - "description": "Updates a single `Profile` using a unique key and a patch.", + "name": "updateLastActive", + "description": null, "args": [ { "name": "input", @@ -4877,7 +4166,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "UpdateProfileInput", + "name": "UpdateLastActiveInput", "ofType": null } }, @@ -4888,15 +4177,15 @@ ], "type": { "kind": "OBJECT", - "name": "UpdateProfilePayload", + "name": "UpdateLastActivePayload", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "updateProfileByNodeId", - "description": "Updates a single `Profile` using its globally unique id and a patch.", + "name": "updateProfile", + "description": "Updates a single `Profile` using a unique key and a patch.", "args": [ { "name": "input", @@ -4906,7 +4195,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "UpdateProfileByNodeIdInput", + "name": "UpdateProfileInput", "ofType": null } }, @@ -4924,8 +4213,8 @@ "deprecationReason": null }, { - "name": "updateProfileByUsername", - "description": "Updates a single `Profile` using a unique key and a patch.", + "name": "updateProfileByNodeId", + "description": "Updates a single `Profile` using its globally unique id and a patch.", "args": [ { "name": "input", @@ -4935,7 +4224,7 @@ "name": null, "ofType": { "kind": "INPUT_OBJECT", - "name": "UpdateProfileByUsernameInput", + "name": "UpdateProfileByNodeIdInput", "ofType": null } }, @@ -4953,9 +4242,38 @@ "deprecationReason": null }, { - "name": "updateSettingByNodeId", - "description": "Updates a single `Setting` using its globally unique id and a patch.", - "args": [ + "name": "updateProfileByUsername", + "description": "Updates a single `Profile` using a unique key and a patch.", + "args": [ + { + "name": "input", + "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateProfileByUsernameInput", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "type": { + "kind": "OBJECT", + "name": "UpdateProfilePayload", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "updateSettingByNodeId", + "description": "Updates a single `Setting` using its globally unique id and a patch.", + "args": [ { "name": "input", "description": "The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields.", @@ -5331,18 +4649,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.", @@ -5412,6 +4718,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "lastactive", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Datetime", + "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.", @@ -5496,18 +4818,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.", @@ -5650,18 +4960,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.", @@ -5694,18 +4992,6 @@ "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.", @@ -5955,945 +5241,287 @@ }, { "kind": "OBJECT", - "name": "Query", - "description": "The root query type which gives access points into the data universe.", + "name": "PublicProfile", + "description": null, "fields": [ { - "name": "ctf", + "name": "color", "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], + "args": [], "type": { - "kind": "OBJECT", - "name": "Ctf", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "ctfByNodeId", - "description": "Reads a single `Ctf` using its globally unique `ID`.", - "args": [ - { - "name": "nodeId", - "description": "The globally unique `ID` to be used in selecting a single `Ctf`.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], + "name": "description", + "description": null, + "args": [], "type": { - "kind": "OBJECT", - "name": "Ctf", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "ctfSecret", + "name": "id", "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], + "args": [], "type": { - "kind": "OBJECT", - "name": "CtfSecret", + "kind": "SCALAR", + "name": "Int", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "ctfSecretByNodeId", - "description": "Reads a single `CtfSecret` using its globally unique `ID`.", - "args": [ - { - "name": "nodeId", - "description": "The globally unique `ID` to be used in selecting a single `CtfSecret`.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], + "name": "nodeId", + "description": null, + "args": [], "type": { - "kind": "OBJECT", - "name": "CtfSecret", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "ctfSecrets", - "description": "Reads and enables pagination through a set of `CtfSecret`.", - "args": [ - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CtfSecretCondition", - "ofType": null - }, - "defaultValue": null, - "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.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `CtfSecret`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CtfSecretsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CtfSecretsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ctfs", - "description": "Reads and enables pagination through a set of `Ctf`.", - "args": [ - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CtfCondition", - "ofType": null - }, - "defaultValue": null, - "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.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `Ctf`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CtfsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CtfsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "guests", - "description": "Reads and enables pagination through a set of `Profile`.", - "args": [ - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "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.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ProfilesConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "incomingCtf", - "description": "Reads and enables pagination through a set of `Ctf`.", - "args": [ - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "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.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CtfsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitation", - "description": null, - "args": [ - { - "name": "ctfId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "profileId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Invitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitationByNodeId", - "description": "Reads a single `Invitation` using its globally unique `ID`.", - "args": [ - { - "name": "nodeId", - "description": "The globally unique `ID` to be used in selecting a single `Invitation`.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Invitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitations", - "description": "Reads and enables pagination through a set of `Invitation`.", - "args": [ - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "InvitationCondition", - "ofType": null - }, - "defaultValue": null, - "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.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `Invitation`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "InvitationsOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[PRIMARY_KEY_ASC]", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "InvitationsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "me", + "name": "role", "description": null, "args": [], "type": { - "kind": "OBJECT", - "name": "Profile", + "kind": "ENUM", + "name": "Role", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "newToken", + "name": "username", "description": null, "args": [], "type": { "kind": "SCALAR", - "name": "Jwt", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PublicProfileSubscriptionPayload", + "description": null, + "fields": [ { - "name": "node", - "description": "Fetches an object given its globally unique `ID`.", - "args": [ - { - "name": "nodeId", - "description": "The globally unique `ID`.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], + "name": "event", + "description": null, + "args": [], "type": { - "kind": "INTERFACE", - "name": "Node", + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "nodeId", - "description": "The root query type must be a `Node` to work well with Relay 1 mutations. This just resolves to `query`.", + "name": "publicProfile", + "description": null, "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pastCtf", - "description": "Reads and enables pagination through a set of `Ctf`.", - "args": [ - { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "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.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], "type": { "kind": "OBJECT", - "name": "CtfsConnection", + "name": "PublicProfile", "ofType": null }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PublicProfilesConnection", + "description": "A connection to a list of `PublicProfile` values.", + "fields": [ { - "name": "profile", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { + "name": "edges", + "description": "A list of edges which contains the `PublicProfile` and cursor to aid in pagination.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "Int", + "kind": "OBJECT", + "name": "PublicProfilesEdge", "ofType": null } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null + } } - ], - "type": { - "kind": "OBJECT", - "name": "Profile", - "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "profileByNodeId", - "description": "Reads a single `Profile` using its globally unique `ID`.", - "args": [ - { - "name": "nodeId", - "description": "The globally unique `ID` to be used in selecting a single `Profile`.", - "type": { + "name": "nodes", + "description": "A list of `PublicProfile` objects.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "SCALAR", - "name": "ID", + "kind": "OBJECT", + "name": "PublicProfile", "ofType": null } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null + } } - ], + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pageInfo", + "description": "Information to aid in pagination.", + "args": [], "type": { - "kind": "OBJECT", - "name": "Profile", + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCount", + "description": "The count of *all* `PublicProfile` you could get from the connection.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PublicProfilesEdge", + "description": "A `PublicProfile` edge in the connection.", + "fields": [ + { + "name": "cursor", + "description": "A cursor for use in pagination.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Cursor", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "profileByUsername", + "name": "node", + "description": "The `PublicProfile` at the end of the edge.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PublicProfile", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "PublicProfilesOrderBy", + "description": "Methods to use when ordering `PublicProfile`.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "NATURAL", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Query", + "description": "The root query type which gives access points into the data universe.", + "fields": [ + { + "name": "ctf", "description": null, "args": [ { - "name": "username", + "name": "id", "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null } }, @@ -6904,152 +5532,77 @@ ], "type": { "kind": "OBJECT", - "name": "Profile", + "name": "Ctf", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "profiles", - "description": "Reads and enables pagination through a set of `Profile`.", + "name": "ctfByNodeId", + "description": "Reads a single `Ctf` using its globally unique `ID`.", "args": [ { - "name": "after", - "description": "Read all values in the set after (below) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "before", - "description": "Read all values in the set before (above) this cursor.", - "type": { - "kind": "SCALAR", - "name": "Cursor", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ProfileCondition", - "ofType": null - }, - "defaultValue": null, - "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.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "last", - "description": "Only read the last `n` values of the set.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "offset", - "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `Profile`.", + "name": "nodeId", + "description": "The globally unique `ID` to be used in selecting a single `Ctf`.", "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProfilesOrderBy", - "ofType": null - } + "kind": "SCALAR", + "name": "ID", + "ofType": null } }, - "defaultValue": "[PRIMARY_KEY_ASC]", + "defaultValue": null, "isDeprecated": false, "deprecationReason": null } ], "type": { "kind": "OBJECT", - "name": "ProfilesConnection", + "name": "Ctf", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "query", - "description": "Exposes the root query type nested one level down. This is helpful for Relay 1\nwhich can only query top level fields if they are in a particular form.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Query", - "ofType": null + "name": "ctfSecret", + "description": null, + "args": [ + { + "name": "id", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null } + ], + "type": { + "kind": "OBJECT", + "name": "CtfSecret", + "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "settingByNodeId", - "description": "Reads a single `Setting` using its globally unique `ID`.", + "name": "ctfSecretByNodeId", + "description": "Reads a single `CtfSecret` using its globally unique `ID`.", "args": [ { "name": "nodeId", - "description": "The globally unique `ID` to be used in selecting a single `Setting`.", + "description": "The globally unique `ID` to be used in selecting a single `CtfSecret`.", "type": { "kind": "NON_NULL", "name": null, @@ -7066,15 +5619,15 @@ ], "type": { "kind": "OBJECT", - "name": "Setting", + "name": "CtfSecret", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "settings", - "description": "Reads and enables pagination through a set of `Setting`.", + "name": "ctfSecrets", + "description": "Reads and enables pagination through a set of `CtfSecret`.", "args": [ { "name": "after", @@ -7100,6 +5653,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "condition", + "description": "A condition to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CtfSecretCondition", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "first", "description": "Only read the first `n` values of the set.", @@ -7138,7 +5703,7 @@ }, { "name": "orderBy", - "description": "The method to use when ordering `Setting`.", + "description": "The method to use when ordering `CtfSecret`.", "type": { "kind": "LIST", "name": null, @@ -7147,7 +5712,7 @@ "name": null, "ofType": { "kind": "ENUM", - "name": "SettingsOrderBy", + "name": "CtfSecretsOrderBy", "ofType": null } } @@ -7159,73 +5724,15 @@ ], "type": { "kind": "OBJECT", - "name": "SettingsConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "task", - "description": null, - "args": [ - { - "name": "id", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Task", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "taskByNodeId", - "description": "Reads a single `Task` using its globally unique `ID`.", - "args": [ - { - "name": "nodeId", - "description": "The globally unique `ID` to be used in selecting a single `Task`.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Task", + "name": "CtfSecretsConnection", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "tasks", - "description": "Reads and enables pagination through a set of `Task`.", + "name": "ctfs", + "description": "Reads and enables pagination through a set of `Ctf`.", "args": [ { "name": "after", @@ -7256,7 +5763,7 @@ "description": "A condition to be used in determining which values should be returned by the collection.", "type": { "kind": "INPUT_OBJECT", - "name": "TaskCondition", + "name": "CtfCondition", "ofType": null }, "defaultValue": null, @@ -7268,7 +5775,7 @@ "description": "A filter to be used in determining which values should be returned by the collection.", "type": { "kind": "INPUT_OBJECT", - "name": "TaskFilter", + "name": "CtfFilter", "ofType": null }, "defaultValue": null, @@ -7313,7 +5820,7 @@ }, { "name": "orderBy", - "description": "The method to use when ordering `Task`.", + "description": "The method to use when ordering `Ctf`.", "type": { "kind": "LIST", "name": null, @@ -7322,7 +5829,7 @@ "name": null, "ofType": { "kind": "ENUM", - "name": "TasksOrderBy", + "name": "CtfsOrderBy", "ofType": null } } @@ -7334,15 +5841,15 @@ ], "type": { "kind": "OBJECT", - "name": "TasksConnection", + "name": "CtfsConnection", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "users", - "description": "Reads and enables pagination through a set of `User`.", + "name": "guests", + "description": "Reads and enables pagination through a set of `Profile`.", "args": [ { "name": "after", @@ -7403,113 +5910,19 @@ "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, - { - "name": "orderBy", - "description": "The method to use when ordering `User`.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UsersOrderBy", - "ofType": null - } - } - }, - "defaultValue": "[NATURAL]", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UsersConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "workOnTask", - "description": null, - "args": [ - { - "name": "profileId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "taskId", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "OBJECT", - "name": "WorkOnTask", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "workOnTaskByNodeId", - "description": "Reads a single `WorkOnTask` using its globally unique `ID`.", - "args": [ - { - "name": "nodeId", - "description": "The globally unique `ID` to be used in selecting a single `WorkOnTask`.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null } ], "type": { "kind": "OBJECT", - "name": "WorkOnTask", + "name": "ProfilesConnection", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "workOnTasks", - "description": "Reads and enables pagination through a set of `WorkOnTask`.", + "name": "incomingCtf", + "description": "Reads and enables pagination through a set of `Ctf`.", "args": [ { "name": "after", @@ -7535,30 +5948,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "condition", - "description": "A condition to be used in determining which values should be returned by the collection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "WorkOnTaskCondition", - "ofType": null - }, - "defaultValue": null, - "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.", @@ -7594,748 +5983,1252 @@ "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, - { - "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": "WorkOnTasksConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RegisterInput", - "description": "All input for the `register` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "password", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RegisterPayload", - "description": "The output of our `register` 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": "jwt", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Jwt", - "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 - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RegisterWithPasswordInput", - "description": "All input for the `registerWithPassword` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", + "name": "CtfsConnection", "ofType": null }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ctfnotePassword", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "password", + "name": "invitation", "description": null, + "args": [ + { + "name": "ctfId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "profileId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RegisterWithPasswordPayload", - "description": "The output of our `registerWithPassword` 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", + "kind": "OBJECT", + "name": "Invitation", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "jwt", - "description": null, - "args": [], + "name": "invitationByNodeId", + "description": "Reads a single `Invitation` using its globally unique `ID`.", + "args": [ + { + "name": "nodeId", + "description": "The globally unique `ID` to be used in selecting a single `Invitation`.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "SCALAR", - "name": "Jwt", + "kind": "OBJECT", + "name": "Invitation", "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": [], + "name": "invitations", + "description": "Reads and enables pagination through a set of `Invitation`.", + "args": [ + { + "name": "after", + "description": "Read all values in the set after (below) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": "Read all values in the set before (above) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "condition", + "description": "A condition to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "InvitationCondition", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": "Only read the first `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": "Only read the last `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offset", + "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "orderBy", + "description": "The method to use when ordering `Invitation`.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "InvitationsOrderBy", + "ofType": null + } + } + }, + "defaultValue": "[PRIMARY_KEY_ASC]", + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { "kind": "OBJECT", - "name": "Query", + "name": "InvitationsConnection", "ofType": null }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RegisterWithTokenInput", - "description": "All input for the `registerWithToken` mutation.", - "fields": null, - "inputFields": [ + }, { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", + "name": "me", + "description": null, + "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "Profile", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "login", + "name": "newToken", "description": null, + "args": [], "type": { "kind": "SCALAR", - "name": "String", + "name": "Jwt", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "password", - "description": null, + "name": "node", + "description": "Fetches an object given its globally unique `ID`.", + "args": [ + { + "name": "nodeId", + "description": "The globally unique `ID`.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "INTERFACE", + "name": "Node", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "token", - "description": null, + "name": "nodeId", + "description": "The root query type must be a `Node` to work well with Relay 1 mutations. This just resolves to `query`.", + "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RegisterWithTokenPayload", - "description": "The output of our `registerWithToken` 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": "pastCtf", + "description": "Reads and enables pagination through a set of `Ctf`.", + "args": [ + { + "name": "after", + "description": "Read all values in the set after (below) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": "Read all values in the set before (above) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": "Only read the first `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": "Only read the last `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offset", + "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "CtfsConnection", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "jwt", + "name": "profile", "description": null, - "args": [], + "args": [ + { + "name": "id", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "SCALAR", - "name": "Jwt", + "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": [], + "name": "profileByNodeId", + "description": "Reads a single `Profile` using its globally unique `ID`.", + "args": [ + { + "name": "nodeId", + "description": "The globally unique `ID` to be used in selecting a single `Profile`.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { "kind": "OBJECT", - "name": "Query", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ResetPasswordInput", - "description": "All input for the `resetPassword` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", - "type": { - "kind": "SCALAR", - "name": "String", + "name": "Profile", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "password", + "name": "profileByUsername", "description": null, + "args": [ + { + "name": "username", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "Profile", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "token", - "description": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ResetPasswordLinkResponse", - "description": null, - "fields": [ - { - "name": "token", - "description": null, - "args": [], + "name": "profiles", + "description": "Reads and enables pagination through a set of `Profile`.", + "args": [ + { + "name": "after", + "description": "Read all values in the set after (below) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": "Read all values in the set before (above) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "condition", + "description": "A condition to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ProfileCondition", + "ofType": null + }, + "defaultValue": null, + "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.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": "Only read the last `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offset", + "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "orderBy", + "description": "The method to use when ordering `Profile`.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "ProfilesOrderBy", + "ofType": null + } + } + }, + "defaultValue": "[PRIMARY_KEY_ASC]", + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "ProfilesConnection", "ofType": null }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ResetPasswordPayload", - "description": "The output of our `resetPassword` 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": "publicProfiles", + "description": "Reads and enables pagination through a set of `PublicProfile`.", + "args": [ + { + "name": "after", + "description": "Read all values in the set after (below) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": "Read all values in the set before (above) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": "Only read the first `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": "Only read the last `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offset", + "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "orderBy", + "description": "The method to use when ordering `PublicProfile`.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "PublicProfilesOrderBy", + "ofType": null + } + } + }, + "defaultValue": "[NATURAL]", + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "PublicProfilesConnection", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "jwt", - "description": null, + "name": "query", + "description": "Exposes the root query type nested one level down. This is helpful for Relay 1\nwhich can only query top level fields if they are in a particular form.", "args": [], "type": { - "kind": "SCALAR", - "name": "Jwt", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Query", + "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": [], + "name": "settingByNodeId", + "description": "Reads a single `Setting` using its globally unique `ID`.", + "args": [ + { + "name": "nodeId", + "description": "The globally unique `ID` to be used in selecting a single `Setting`.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { "kind": "OBJECT", - "name": "Query", + "name": "Setting", "ofType": null }, "isDeprecated": false, "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "Role", - "description": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "USER_ADMIN", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_FRIEND", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_GUEST", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_MANAGER", - "description": null, - "isDeprecated": false, - "deprecationReason": null }, { - "name": "USER_MEMBER", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "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.", + "name": "settings", + "description": "Reads and enables pagination through a set of `Setting`.", + "args": [ + { + "name": "after", + "description": "Read all values in the set after (below) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": "Read all values in the set before (above) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": "Only read the first `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": "Only read the last `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offset", + "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "orderBy", + "description": "The method to use when ordering `Setting`.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SettingsOrderBy", + "ofType": null + } + } + }, + "defaultValue": "[PRIMARY_KEY_ASC]", + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "ENUM", - "name": "Role", + "kind": "OBJECT", + "name": "SettingsConnection", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "equalTo", - "description": "Equal to the specified value.", + "name": "task", + "description": null, + "args": [ + { + "name": "id", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "ENUM", - "name": "Role", + "kind": "OBJECT", + "name": "Task", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "greaterThan", - "description": "Greater than the specified value.", + "name": "taskByNodeId", + "description": "Reads a single `Task` using its globally unique `ID`.", + "args": [ + { + "name": "nodeId", + "description": "The globally unique `ID` to be used in selecting a single `Task`.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "ENUM", - "name": "Role", + "kind": "OBJECT", + "name": "Task", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", + "name": "tasks", + "description": "Reads and enables pagination through a set of `Task`.", + "args": [ + { + "name": "after", + "description": "Read all values in the set after (below) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": "Read all values in the set before (above) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "condition", + "description": "A condition to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TaskCondition", + "ofType": null + }, + "defaultValue": null, + "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": "TaskFilter", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": "Only read the first `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": "Only read the last `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offset", + "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "orderBy", + "description": "The method to use when ordering `Task`.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "TasksOrderBy", + "ofType": null + } + } + }, + "defaultValue": "[PRIMARY_KEY_ASC]", + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "ENUM", - "name": "Role", + "kind": "OBJECT", + "name": "TasksConnection", "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", + "name": "users", + "description": "Reads and enables pagination through a set of `User`.", + "args": [ + { + "name": "after", + "description": "Read all values in the set after (below) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": "Read all values in the set before (above) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": "Only read the first `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": "Only read the last `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", "ofType": null - } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offset", + "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "orderBy", + "description": "The method to use when ordering `User`.", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "UsersOrderBy", + "ofType": null + } + } + }, + "defaultValue": "[NATURAL]", + "isDeprecated": false, + "deprecationReason": 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", + "kind": "OBJECT", + "name": "UsersConnection", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", + "name": "workOnTask", + "description": null, + "args": [ + { + "name": "profileId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "taskId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "ENUM", - "name": "Role", + "kind": "OBJECT", + "name": "WorkOnTask", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", + "name": "workOnTaskByNodeId", + "description": "Reads a single `WorkOnTask` using its globally unique `ID`.", + "args": [ + { + "name": "nodeId", + "description": "The globally unique `ID` to be used in selecting a single `WorkOnTask`.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], "type": { - "kind": "ENUM", - "name": "Role", + "kind": "OBJECT", + "name": "WorkOnTask", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "notEqualTo", - "description": "Not equal to the specified value.", + "name": "workOnTasks", + "description": "Reads and enables pagination through a set of `WorkOnTask`.", + "args": [ + { + "name": "after", + "description": "Read all values in the set after (below) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "before", + "description": "Read all values in the set before (above) this cursor.", + "type": { + "kind": "SCALAR", + "name": "Cursor", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "condition", + "description": "A condition to be used in determining which values should be returned by the collection.", + "type": { + "kind": "INPUT_OBJECT", + "name": "WorkOnTaskCondition", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "first", + "description": "Only read the first `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "last", + "description": "Only read the last `n` values of the set.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "offset", + "description": "Skip the first `n` values from our `after` cursor, an alternative to cursor\nbased pagination. May not be used with `last`.", + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "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": "ENUM", - "name": "Role", + "kind": "OBJECT", + "name": "WorkOnTasksConnection", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [ { - "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 + "kind": "INTERFACE", + "name": "Node", + "ofType": null } ], - "interfaces": null, "enumValues": null, "possibleTypes": null }, { - "kind": "OBJECT", - "name": "Setting", - "description": null, - "fields": [ - { - "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", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "registrationAllowed", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, + "kind": "INPUT_OBJECT", + "name": "RegisterInput", + "description": "All input for the `register` mutation.", + "fields": null, + "inputFields": [ { - "name": "registrationDefaultRole", - "description": null, - "args": [], + "name": "clientMutationId", + "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "Role", - "ofType": null - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "registrationPassword", + "name": "login", "description": null, - "args": [], "type": { "kind": "NON_NULL", "name": null, @@ -8345,244 +7238,186 @@ "ofType": null } }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "registrationPasswordAllowed", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "style", + "name": "password", "description": null, - "args": [], "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "JSON", + "name": "String", "ofType": null } }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null } ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - ], + "interfaces": null, "enumValues": null, "possibleTypes": null }, { - "kind": "INPUT_OBJECT", - "name": "SettingPatch", - "description": "Represents an update to a `Setting`. Fields that are set will be updated.", - "fields": null, - "inputFields": [ - { - "name": "registrationAllowed", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "registrationDefaultRole", - "description": null, - "type": { - "kind": "ENUM", - "name": "Role", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, + "kind": "OBJECT", + "name": "RegisterPayload", + "description": "The output of our `register` mutation.", + "fields": [ { - "name": "registrationPassword", - "description": null, + "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": "registrationPasswordAllowed", + "name": "jwt", "description": null, + "args": [], "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Jwt", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "style", - "description": null, + "name": "query", + "description": "Our root query field type. Allows us to run any query from our mutation payload.", + "args": [], "type": { - "kind": "SCALAR", - "name": "JSON", + "kind": "OBJECT", + "name": "Query", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null } ], - "interfaces": null, + "inputFields": null, + "interfaces": [], "enumValues": null, "possibleTypes": null }, { - "kind": "OBJECT", - "name": "SettingsConnection", - "description": "A connection to a list of `Setting` values.", - "fields": [ + "kind": "INPUT_OBJECT", + "name": "RegisterWithPasswordInput", + "description": "All input for the `registerWithPassword` mutation.", + "fields": null, + "inputFields": [ { - "name": "edges", - "description": "A list of edges which contains the `Setting` and cursor to aid in pagination.", - "args": [], + "name": "clientMutationId", + "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SettingsEdge", - "ofType": null - } - } - } + "kind": "SCALAR", + "name": "String", + "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "nodes", - "description": "A list of `Setting` objects.", - "args": [], + "name": "ctfnotePassword", + "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Setting", - "ofType": null - } - } + "kind": "SCALAR", + "name": "String", + "ofType": null } }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], + "name": "login", + "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { - "kind": "OBJECT", - "name": "PageInfo", + "kind": "SCALAR", + "name": "String", "ofType": null } }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "totalCount", - "description": "The count of *all* `Setting` you could get from the connection.", - "args": [], + "name": "password", + "description": null, "type": { "kind": "NON_NULL", "name": null, "ofType": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null } }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null } ], - "inputFields": null, - "interfaces": [], + "interfaces": null, "enumValues": null, "possibleTypes": null }, { "kind": "OBJECT", - "name": "SettingsEdge", - "description": "A `Setting` edge in the connection.", + "name": "RegisterWithPasswordPayload", + "description": "The output of our `registerWithPassword` mutation.", "fields": [ { - "name": "cursor", - "description": "A cursor for use in pagination.", + "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": "Cursor", + "name": "String", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "node", - "description": "The `Setting` at the end of the edge.", + "name": "jwt", + "description": null, "args": [], "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Setting", - "ofType": null - } + "kind": "SCALAR", + "name": "Jwt", + "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 @@ -8594,43 +7429,38 @@ "possibleTypes": null }, { - "kind": "ENUM", - "name": "SettingsOrderBy", - "description": "Methods to use when ordering `Setting`.", + "kind": "INPUT_OBJECT", + "name": "RegisterWithTokenInput", + "description": "All input for the `registerWithToken` mutation.", "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ + "inputFields": [ { - "name": "NATURAL", - "description": null, + "name": "clientMutationId", + "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "PRIMARY_KEY_ASC", + "name": "login", "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "PRIMARY_KEY_DESC", + "name": "password", "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "StartWorkingOnInput", - "description": "All input for the `startWorkingOn` mutation.", - "fields": null, - "inputFields": [ - { - "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", "type": { "kind": "SCALAR", "name": "String", @@ -8641,11 +7471,11 @@ "deprecationReason": null }, { - "name": "taskId", + "name": "token", "description": null, "type": { "kind": "SCALAR", - "name": "Int", + "name": "String", "ofType": null }, "defaultValue": null, @@ -8659,8 +7489,8 @@ }, { "kind": "OBJECT", - "name": "StartWorkingOnPayload", - "description": "The output of our `startWorkingOn` mutation.", + "name": "RegisterWithTokenPayload", + "description": "The output of our `registerWithToken` mutation.", "fields": [ { "name": "clientMutationId", @@ -8675,12 +7505,12 @@ "deprecationReason": null }, { - "name": "profile", - "description": "Reads a single `Profile` that is related to this `WorkOnTask`.", + "name": "jwt", + "description": null, "args": [], "type": { - "kind": "OBJECT", - "name": "Profile", + "kind": "SCALAR", + "name": "Jwt", "ofType": null }, "isDeprecated": false, @@ -8697,59 +7527,72 @@ }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ResetPasswordInput", + "description": "All input for the `resetPassword` mutation.", + "fields": null, + "inputFields": [ { - "name": "task", - "description": "Reads a single `Task` that is related to this `WorkOnTask`.", - "args": [], + "name": "clientMutationId", + "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", "type": { - "kind": "OBJECT", - "name": "Task", + "kind": "SCALAR", + "name": "String", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "workOnTask", + "name": "password", "description": null, - "args": [], "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": "token", + "description": null, "type": { - "kind": "OBJECT", - "name": "WorkOnTasksEdge", + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ResetPasswordLinkResponse", + "description": null, + "fields": [ + { + "name": "token", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", "ofType": null }, "isDeprecated": false, @@ -8762,214 +7605,218 @@ "possibleTypes": null }, { - "kind": "INPUT_OBJECT", - "name": "StopWorkingOnInput", - "description": "All input for the `stopWorkingOn` mutation.", - "fields": null, - "inputFields": [ + "kind": "OBJECT", + "name": "ResetPasswordPayload", + "description": "The output of our `resetPassword` mutation.", + "fields": [ { "name": "clientMutationId", - "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", + "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": "taskId", + "name": "jwt", "description": null, + "args": [], "type": { "kind": "SCALAR", - "name": "Int", + "name": "Jwt", + "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 }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null } ], - "interfaces": null, + "inputFields": null, + "interfaces": [], "enumValues": null, "possibleTypes": null }, + { + "kind": "ENUM", + "name": "Role", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "USER_ADMIN", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "USER_FRIEND", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "USER_GUEST", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "USER_MANAGER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "USER_MEMBER", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, { "kind": "OBJECT", - "name": "StopWorkingOnPayload", - "description": "The output of our `stopWorkingOn` mutation.", + "name": "Setting", + "description": null, "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.", + "name": "nodeId", + "description": "A globally unique identifier. Can be used in various places throughout the system to identify this single value.", "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "profile", - "description": "Reads a single `Profile` that is related to this `WorkOnTask`.", + "name": "registrationAllowed", + "description": null, "args": [], "type": { - "kind": "OBJECT", - "name": "Profile", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "query", - "description": "Our root query field type. Allows us to run any query from our mutation payload.", + "name": "registrationDefaultRole", + "description": null, "args": [], "type": { - "kind": "OBJECT", - "name": "Query", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "Role", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "task", - "description": "Reads a single `Task` that is related to this `WorkOnTask`.", + "name": "registrationPassword", + "description": null, "args": [], "type": { - "kind": "OBJECT", - "name": "Task", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } }, "isDeprecated": false, "deprecationReason": null }, { - "name": "workOnTask", + "name": "registrationPasswordAllowed", "description": null, "args": [], "type": { - "kind": "OBJECT", - "name": "WorkOnTask", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "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 - } - ], + "name": "style", + "description": null, + "args": [], "type": { - "kind": "OBJECT", - "name": "WorkOnTasksEdge", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "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, + "interfaces": [ + { + "kind": "INTERFACE", + "name": "Node", + "ofType": 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.’", + "name": "SettingPatch", + "description": "Represents an update to a `Setting`. Fields that are set will be updated.", "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.", + "name": "registrationAllowed", + "description": null, "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null }, "defaultValue": null, @@ -8977,11 +7824,11 @@ "deprecationReason": null }, { - "name": "equalToInsensitive", - "description": "Equal to the specified value (case-insensitive).", + "name": "registrationDefaultRole", + "description": null, "type": { - "kind": "SCALAR", - "name": "String", + "kind": "ENUM", + "name": "Role", "ofType": null }, "defaultValue": null, @@ -8989,8 +7836,8 @@ "deprecationReason": null }, { - "name": "greaterThan", - "description": "Greater than the specified value.", + "name": "registrationPassword", + "description": null, "type": { "kind": "SCALAR", "name": "String", @@ -9001,11 +7848,11 @@ "deprecationReason": null }, { - "name": "greaterThanInsensitive", - "description": "Greater than the specified value (case-insensitive).", + "name": "registrationPasswordAllowed", + "description": null, "type": { "kind": "SCALAR", - "name": "String", + "name": "Boolean", "ofType": null }, "defaultValue": null, @@ -9013,120 +7860,190 @@ "deprecationReason": null }, { - "name": "greaterThanOrEqualTo", - "description": "Greater than or equal to the specified value.", + "name": "style", + "description": null, "type": { "kind": "SCALAR", - "name": "String", + "name": "JSON", "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SettingsConnection", + "description": "A connection to a list of `Setting` values.", + "fields": [ { - "name": "greaterThanOrEqualToInsensitive", - "description": "Greater than or equal to the specified value (case-insensitive).", + "name": "edges", + "description": "A list of edges which contains the `Setting` and cursor to aid in pagination.", + "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SettingsEdge", + "ofType": null + } + } + } }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "in", - "description": "Included in the specified list.", + "name": "nodes", + "description": "A list of `Setting` objects.", + "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", + "kind": "LIST", "name": null, "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Setting", + "ofType": null + } } } }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "inInsensitive", - "description": "Included in the specified list (case-insensitive).", + "name": "pageInfo", + "description": "Information to aid in pagination.", + "args": [], "type": { - "kind": "LIST", + "kind": "NON_NULL", "name": null, "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } + "kind": "OBJECT", + "name": "PageInfo", + "ofType": null } }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "includes", - "description": "Contains the specified string (case-sensitive).", + "name": "totalCount", + "description": "The count of *all* `Setting` you could get from the connection.", + "args": [], "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SettingsEdge", + "description": "A `Setting` edge in the connection.", + "fields": [ { - "name": "includesInsensitive", - "description": "Contains the specified string (case-insensitive).", + "name": "cursor", + "description": "A cursor for use in pagination.", + "args": [], "type": { "kind": "SCALAR", - "name": "String", + "name": "Cursor", "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).", + "name": "node", + "description": "The `Setting` at the end of the edge.", + "args": [], "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Setting", + "ofType": null + } }, - "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "SettingsOrderBy", + "description": "Methods to use when ordering `Setting`.", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "NATURAL", + "description": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "lessThan", - "description": "Less than the specified value.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, + "name": "PRIMARY_KEY_ASC", + "description": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "lessThanInsensitive", - "description": "Less than the specified value (case-insensitive).", + "name": "PRIMARY_KEY_DESC", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "StartWorkingOnInput", + "description": "All input for the `startWorkingOn` mutation.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", "type": { "kind": "SCALAR", "name": "String", @@ -9137,92 +8054,135 @@ "deprecationReason": null }, { - "name": "lessThanOrEqualTo", - "description": "Less than or equal to the specified value.", + "name": "taskId", + "description": null, "type": { "kind": "SCALAR", - "name": "String", + "name": "Int", "ofType": null }, "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "StartWorkingOnPayload", + "description": "The output of our `startWorkingOn` mutation.", + "fields": [ { - "name": "lessThanOrEqualToInsensitive", - "description": "Less than or equal to the specified value (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": "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.", + "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": "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.", + "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": "notDistinctFrom", - "description": "Equal to the specified value, treating null like an ordinary value.", + "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": "notDistinctFromInsensitive", - "description": "Equal to the specified value, treating null like an ordinary value (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": "notEndsWith", - "description": "Does not end 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": "INPUT_OBJECT", + "name": "StopWorkingOnInput", + "description": "All input for the `stopWorkingOn` mutation.", + "fields": null, + "inputFields": [ { - "name": "notEndsWithInsensitive", - "description": "Does not end with the specified string (case-insensitive).", + "name": "clientMutationId", + "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", "type": { "kind": "SCALAR", "name": "String", @@ -9233,108 +8193,145 @@ "deprecationReason": null }, { - "name": "notEqualTo", - "description": "Not equal to the specified value.", + "name": "taskId", + "description": null, "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": "notEqualToInsensitive", - "description": "Not equal to the specified value (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": "notIn", - "description": "Not included in the specified list.", + "name": "profile", + "description": "Reads a single `Profile` that is related to this `WorkOnTask`.", + "args": [], "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } + "kind": "OBJECT", + "name": "Profile", + "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "notInInsensitive", - "description": "Not included in the specified list (case-insensitive).", + "name": "query", + "description": "Our root query field type. Allows us to run any query from our mutation payload.", + "args": [], "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } + "kind": "OBJECT", + "name": "Query", + "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "notIncludes", - "description": "Does not contain 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": "notIncludesInsensitive", - "description": "Does not contain 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": "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": "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": "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": "includesInsensitive", + "description": "Contains the specified string (case-insensitive).", "type": { "kind": "SCALAR", "name": "String", @@ -9343,65 +8340,53 @@ "defaultValue": null, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Subscription", + "description": "The root subscription type: contains realtime events you can subscribe to with the `subscription` operation.", + "fields": [ { - "name": "notStartsWith", - "description": "Does not start with the specified string (case-sensitive).", + "name": "currentProfileCreated", + "description": null, + "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "PublicProfileSubscriptionPayload", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "notStartsWithInsensitive", - "description": "Does not start with the specified string (case-insensitive).", + "name": "currentProfileDeleted", + "description": null, + "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "PublicProfileSubscriptionPayload", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "startsWith", - "description": "Starts with the specified string (case-sensitive).", + "name": "currentProfileUpdated", + "description": null, + "args": [], "type": { - "kind": "SCALAR", - "name": "String", + "kind": "OBJECT", + "name": "PublicProfileSubscriptionPayload", "ofType": null }, - "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, - { - "name": "startsWithInsensitive", - "description": "Starts with the specified string (case-insensitive).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Subscription", - "description": "The root subscription type: contains realtime events you can subscribe to with the `subscription` operation.", - "fields": [ { "name": "listen", "description": null, @@ -9638,18 +8623,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.", @@ -9804,30 +8777,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.", @@ -9860,18 +8809,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.", @@ -10535,6 +9472,64 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "INPUT_OBJECT", + "name": "UpdateLastActiveInput", + "description": "All input for the `updateLastActive` mutation.", + "fields": null, + "inputFields": [ + { + "name": "clientMutationId", + "description": "An arbitrary string value with no semantic meaning. Will be included in the\npayload verbatim. May be used to track mutations by the client.", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UpdateLastActivePayload", + "description": "The output of our `updateLastActive` 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": "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 + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "INPUT_OBJECT", "name": "UpdateProfileByNodeIdInput", @@ -11610,93 +10605,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": "OBJECT", "name": "WorkOnTasksConnection", diff --git a/front/src/components/Admin/Users.vue b/front/src/components/Admin/Users.vue index d431c1541..6ea59c4df 100644 --- a/front/src/components/Admin/Users.vue +++ b/front/src/components/Admin/Users.vue @@ -36,6 +36,11 @@ {{ value }} +