@crowdedkingdoms/crowdyjs 18.5.0-dev.1 → 18.6.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MIGRATION.md +29 -0
- package/README.md +1 -0
- package/dist/crowdy-client.d.ts +3 -0
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +2 -0
- package/dist/domains/apps.d.ts +7 -1
- package/dist/domains/apps.d.ts.map +1 -1
- package/dist/domains/apps.js +7 -1
- package/dist/domains/inputLog.d.ts +74 -0
- package/dist/domains/inputLog.d.ts.map +1 -0
- package/dist/domains/inputLog.js +74 -0
- package/dist/generated/graphql-schema.d.ts +416 -1
- package/dist/generated/graphql-schema.d.ts.map +1 -1
- package/dist/generated/graphql-schema.js +27 -0
- package/dist/generated/graphql.d.ts +79 -0
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +8 -6
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/package.json +1 -1
|
@@ -179,6 +179,15 @@ export type ActorsConnection = {
|
|
|
179
179
|
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
180
180
|
totalCount: Maybe<Scalars['Int']['output']>;
|
|
181
181
|
};
|
|
182
|
+
export type AddTierAccessRuleInput = {
|
|
183
|
+
/** When the listing ends (a contractor engagement). Omit for none. */
|
|
184
|
+
expiresAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
185
|
+
kind: TierAccessRuleKind;
|
|
186
|
+
/** Who this is and why, for the next operator. */
|
|
187
|
+
note?: InputMaybe<Scalars['String']['input']>;
|
|
188
|
+
/** An email address (EMAIL) or a domain (EMAIL_DOMAIN). */
|
|
189
|
+
value: Scalars['String']['input'];
|
|
190
|
+
};
|
|
182
191
|
export type AdmitAppCodeInput = {
|
|
183
192
|
/** Numeric app id whose allow list receives this entry. */
|
|
184
193
|
appId: Scalars['BigInt']['input'];
|
|
@@ -871,6 +880,8 @@ export type App = {
|
|
|
871
880
|
orgId: Scalars['BigInt']['output'];
|
|
872
881
|
/** OAuth-style redirect-URI allow-list for the portal handoff. A portal authorization code’s redirect_uri must match one of these by origin; empty disallows browser portal entry to this app. */
|
|
873
882
|
redirectUris: Array<Scalars['String']['output']>;
|
|
883
|
+
/** Whether replay logging is on: the realtime servers record every client input they accept for this app, searchable with inputLogSessions and readable with inputLogMessages, and billed as stored input logs. False (the default) records nothing ("No replication logging"). Set with updateApp (manage_apps); turning it on needs a funded org wallet or a billing-exempt org. */
|
|
884
|
+
replayLoggingEnabled: Scalars['Boolean']['output'];
|
|
874
885
|
/**
|
|
875
886
|
* Reserved realtime (UDP) capacity in bytes/s for shared apps. Superseded by reservedUdpBytesPerSec.
|
|
876
887
|
* @deprecated Renamed 2026-09-01 when reservations split by traffic type. Use reservedUdpBytesPerSec; this returns the same value for one release.
|
|
@@ -1185,10 +1196,14 @@ export type AppUsageProjection = {
|
|
|
1185
1196
|
daysElapsed: Scalars['Float']['output'];
|
|
1186
1197
|
/** Per-app free monthly egress allowance in bytes (5 decimal GB). */
|
|
1187
1198
|
freeAllowanceBytes: Scalars['String']['output'];
|
|
1199
|
+
/** Stored input logs this calendar month so far, in byte-hours (input_log_storage_byte_hours, which has no free allowance). 0 when replay logging was off all month. */
|
|
1200
|
+
inputLogByteHours: Scalars['String']['output'];
|
|
1188
1201
|
/** True when projected egress exceeds the free allowance, or null when insufficient data. */
|
|
1189
1202
|
onTrackToExceed: Maybe<Scalars['Boolean']['output']>;
|
|
1190
1203
|
/** Projected end-of-month egress bytes (linear extrapolation), or null when insufficient data. */
|
|
1191
1204
|
projectedBytes: Maybe<Scalars['String']['output']>;
|
|
1205
|
+
/** Projected end-of-month stored input logs in byte-hours (linear extrapolation), or null when insufficient data. */
|
|
1206
|
+
projectedInputLogByteHours: Maybe<Scalars['String']['output']>;
|
|
1192
1207
|
/** Projected usage as a percentage of the free allowance, or null when insufficient data. */
|
|
1193
1208
|
projectedPctOfFree: Maybe<Scalars['Float']['output']>;
|
|
1194
1209
|
/** True when at least 3 days have elapsed in the month (projection is meaningful). */
|
|
@@ -1209,6 +1224,10 @@ export type AppUsageSummary = {
|
|
|
1209
1224
|
graphqlRecvBytes: Scalars['String']['output'];
|
|
1210
1225
|
/** Total GraphQL bytes sent (string counter). */
|
|
1211
1226
|
graphqlSendBytes: Scalars['String']['output'];
|
|
1227
|
+
/** Stored input logs over the window, in byte-hours (string counter): the sum of the hourly samples, which is the quantity input_log_storage_byte_hours bills. Each recorded byte (InputLogMessage.sizeBytes) is held for the input log retention, one byte-hour per hour. 0 when replay logging was off. */
|
|
1228
|
+
inputLogByteHours: Scalars['String']['output'];
|
|
1229
|
+
/** Recorded input-log bytes the app holds now (string counter): the latest hourly sample, the bytes recorded within the trailing retention. 0 when replay logging has never been on. */
|
|
1230
|
+
inputLogRetainedBytes: Scalars['String']['output'];
|
|
1212
1231
|
/** Total replication bytes received (string counter). */
|
|
1213
1232
|
replicationRecvBytes: Scalars['String']['output'];
|
|
1214
1233
|
/** Total replication bytes sent (string counter). */
|
|
@@ -2165,12 +2184,29 @@ export type CreateTeamInput = {
|
|
|
2165
2184
|
/** Display name for the team (max 128 chars; unique per app+type). */
|
|
2166
2185
|
name: Scalars['String']['input'];
|
|
2167
2186
|
};
|
|
2187
|
+
export type CreateTierAccessProvisioningTokenInput = {
|
|
2188
|
+
/** prefix*@domain patterns. The domain must be a reserved test domain (.invalid, .test, .example, .localhost, .local, example.com) or a company domain; the prefix is at least three characters. */
|
|
2189
|
+
emailPatterns: Array<Scalars['String']['input']>;
|
|
2190
|
+
/** Days until it expires (1-90). Accounts it created keep their grant. */
|
|
2191
|
+
expiresInDays: Scalars['Int']['input'];
|
|
2192
|
+
/** What uses it, e.g. identity-probe or bwf-loadtest. */
|
|
2193
|
+
label: Scalars['String']['input'];
|
|
2194
|
+
/** The most accounts it may ever create. */
|
|
2195
|
+
maxAccounts: Scalars['Int']['input'];
|
|
2196
|
+
};
|
|
2168
2197
|
export type CreateUserAppStateInput = {
|
|
2169
2198
|
/** App (game) id to scope the state to. Required. BigInt sent as a decimal string. */
|
|
2170
2199
|
appId: Scalars['BigInt']['input'];
|
|
2171
2200
|
/** Per-app user state as base64-encoded binary, at most 1,048,576 base64 characters (~768 KiB binary); larger payloads draw a structured validation error. Omit or send null to clear it. */
|
|
2172
2201
|
state?: InputMaybe<Scalars['String']['input']>;
|
|
2173
2202
|
};
|
|
2203
|
+
/** OPERATOR: a new provisioning token. `token` is shown this once. */
|
|
2204
|
+
export type CreatedTierAccessProvisioningToken = {
|
|
2205
|
+
__typename?: 'CreatedTierAccessProvisioningToken';
|
|
2206
|
+
provisioningToken: TierAccessProvisioningToken;
|
|
2207
|
+
/** The secret. Store it now; it cannot be read again. */
|
|
2208
|
+
token: Scalars['String']['output'];
|
|
2209
|
+
};
|
|
2174
2210
|
/** Single-use human decision lifecycle for one canonical argument hash. */
|
|
2175
2211
|
export declare enum CrowdyStudioAgentApprovalStatus {
|
|
2176
2212
|
/** Used exactly once for dispatch/execution. */
|
|
@@ -3859,6 +3895,15 @@ export type GrantGridPermissionsInput = {
|
|
|
3859
3895
|
/** The user receiving the grant. Must already have active app access for this app. */
|
|
3860
3896
|
userId: Scalars['BigInt']['input'];
|
|
3861
3897
|
};
|
|
3898
|
+
/** OPERATOR: the result of a bulk grant by pattern. */
|
|
3899
|
+
export type GrantTierAccessByPatternResult = {
|
|
3900
|
+
__typename?: 'GrantTierAccessByPatternResult';
|
|
3901
|
+
dryRun: Scalars['Boolean']['output'];
|
|
3902
|
+
/** Accounts granted (0 on a dry run). */
|
|
3903
|
+
granted: Scalars['Int']['output'];
|
|
3904
|
+
/** Accounts the pattern matches that lack a grant. */
|
|
3905
|
+
matched: Scalars['Int']['output'];
|
|
3906
|
+
};
|
|
3862
3907
|
/** Grant or revoke a feature key for an access tier. */
|
|
3863
3908
|
export type GrantTierFeatureInput = {
|
|
3864
3909
|
/** The app (tenant). */
|
|
@@ -4228,6 +4273,122 @@ export type ImportCrowdyStudioProjectFileInput = {
|
|
|
4228
4273
|
/** Private LIBRARY or app-curated COMMON source. */
|
|
4229
4274
|
source: CrowdyStudioImportSource;
|
|
4230
4275
|
};
|
|
4276
|
+
/** One recorded client input: the message exactly as the client sent it, without its trailing authentication bytes. */
|
|
4277
|
+
export type InputLogMessage = {
|
|
4278
|
+
__typename?: 'InputLogMessage';
|
|
4279
|
+
/** The 32-character actor uuid of a spatial message; null for other types. */
|
|
4280
|
+
actorUuid: Maybe<Scalars['String']['output']>;
|
|
4281
|
+
/** The message bytes, base64: the client message from its type byte up to, not including, its authentication tail. */
|
|
4282
|
+
body: Scalars['String']['output'];
|
|
4283
|
+
/** The channel of a channel message; null for other types. */
|
|
4284
|
+
channelId: Maybe<Scalars['BigInt']['output']>;
|
|
4285
|
+
/** Chunk x of a spatial message's target chunk; null for other types. */
|
|
4286
|
+
chunkX: Maybe<Scalars['BigInt']['output']>;
|
|
4287
|
+
/** Chunk y of a spatial message's target chunk; null for other types. */
|
|
4288
|
+
chunkY: Maybe<Scalars['BigInt']['output']>;
|
|
4289
|
+
/** Chunk z of a spatial message's target chunk; null for other types. */
|
|
4290
|
+
chunkZ: Maybe<Scalars['BigInt']['output']>;
|
|
4291
|
+
/** True when the message arrived inside a client message bundle. */
|
|
4292
|
+
fromBundle: Scalars['Boolean']['output'];
|
|
4293
|
+
/** The game token the message was sent on. */
|
|
4294
|
+
gameTokenId: Scalars['BigInt']['output'];
|
|
4295
|
+
/** The client message type (its first byte). */
|
|
4296
|
+
messageType: Scalars['Int']['output'];
|
|
4297
|
+
/** When the realtime server received the message. */
|
|
4298
|
+
receivedAt: Scalars['DateTime']['output'];
|
|
4299
|
+
/** The receive time in Unix microseconds (receivedAt at full precision). */
|
|
4300
|
+
receivedAtMicros: Scalars['BigInt']['output'];
|
|
4301
|
+
/** The message's sequence byte, as the client sent it. */
|
|
4302
|
+
seq: Scalars['Int']['output'];
|
|
4303
|
+
/** False when the message type is one accepted without a signature. */
|
|
4304
|
+
signed: Scalars['Boolean']['output'];
|
|
4305
|
+
/** Recorded size in bytes, record header included: what stored input logs are billed on. */
|
|
4306
|
+
sizeBytes: Scalars['Int']['output'];
|
|
4307
|
+
/** The user whose client sent the message. */
|
|
4308
|
+
userId: Scalars['BigInt']['output'];
|
|
4309
|
+
};
|
|
4310
|
+
/** A page of recorded inputs, oldest first. A page can hold fewer than `first` inputs when the read stopped at its time or scan limit; keep paging while hasNextPage is true. */
|
|
4311
|
+
export type InputLogMessageConnection = {
|
|
4312
|
+
__typename?: 'InputLogMessageConnection';
|
|
4313
|
+
/** Edges on this page. */
|
|
4314
|
+
edges: Array<InputLogMessageEdge>;
|
|
4315
|
+
/** Pagination metadata. */
|
|
4316
|
+
pageInfo: ConnectionPageInfo;
|
|
4317
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
4318
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
4319
|
+
};
|
|
4320
|
+
/** An edge in a InputLogMessage connection. */
|
|
4321
|
+
export type InputLogMessageEdge = {
|
|
4322
|
+
__typename?: 'InputLogMessageEdge';
|
|
4323
|
+
/** Opaque cursor for this edge. */
|
|
4324
|
+
cursor: Scalars['String']['output'];
|
|
4325
|
+
/** The node at the end of this edge. */
|
|
4326
|
+
node: InputLogMessage;
|
|
4327
|
+
};
|
|
4328
|
+
/** Narrows inputLogMessages. All fields are optional and AND-combined. */
|
|
4329
|
+
export type InputLogMessageFilter = {
|
|
4330
|
+
/** Only inputs received at or after this instant. */
|
|
4331
|
+
from?: InputMaybe<Scalars['DateTime']['input']>;
|
|
4332
|
+
/** Only these client message types (each 0-255, at most 64 of them). */
|
|
4333
|
+
messageTypes?: InputMaybe<Array<Scalars['Int']['input']>>;
|
|
4334
|
+
/** Only inputs received at or before this instant. */
|
|
4335
|
+
to?: InputMaybe<Scalars['DateTime']['input']>;
|
|
4336
|
+
};
|
|
4337
|
+
/** One recorded client session of an app with replay logging on: a game token's inputs, from the first one the realtime servers accepted to the last. Kept for the input log's published retention. */
|
|
4338
|
+
export type InputLogSession = {
|
|
4339
|
+
__typename?: 'InputLogSession';
|
|
4340
|
+
/** The app the session belongs to. */
|
|
4341
|
+
appId: Scalars['BigInt']['output'];
|
|
4342
|
+
/** Recorded bytes (the sum of every message sizeBytes): the quantity stored input logs are billed on. */
|
|
4343
|
+
byteCount: Scalars['BigInt']['output'];
|
|
4344
|
+
/** The datacenter that recorded the session, when known. */
|
|
4345
|
+
datacenter: Maybe<Scalars['String']['output']>;
|
|
4346
|
+
/** How the session ended, as the client saw it: expired, revoked, reconnect or released. Null while it may still be running. */
|
|
4347
|
+
endReason: Maybe<Scalars['String']['output']>;
|
|
4348
|
+
/** When the session ended, if its end was recorded; null while it may still be running. */
|
|
4349
|
+
endedAt: Maybe<Scalars['DateTime']['output']>;
|
|
4350
|
+
/** The game token the session ran on; pass it to inputLogMessages to read the inputs. */
|
|
4351
|
+
gameTokenId: Scalars['BigInt']['output'];
|
|
4352
|
+
/** When the latest recorded input or marker arrived. */
|
|
4353
|
+
lastSeenAt: Scalars['DateTime']['output'];
|
|
4354
|
+
/** Inputs recorded in the session. */
|
|
4355
|
+
messageCount: Scalars['BigInt']['output'];
|
|
4356
|
+
/** The client message types the session contains, ascending. */
|
|
4357
|
+
messageTypes: Array<Scalars['Int']['output']>;
|
|
4358
|
+
/** When the first recorded input arrived. */
|
|
4359
|
+
startedAt: Scalars['DateTime']['output'];
|
|
4360
|
+
/** The user whose client sent the inputs. */
|
|
4361
|
+
userId: Scalars['BigInt']['output'];
|
|
4362
|
+
};
|
|
4363
|
+
/** A page of recorded sessions. */
|
|
4364
|
+
export type InputLogSessionConnection = {
|
|
4365
|
+
__typename?: 'InputLogSessionConnection';
|
|
4366
|
+
/** Edges on this page. */
|
|
4367
|
+
edges: Array<InputLogSessionEdge>;
|
|
4368
|
+
/** Pagination metadata. */
|
|
4369
|
+
pageInfo: ConnectionPageInfo;
|
|
4370
|
+
/** Total matching records across all pages, when known (null for sources that do not compute a total). */
|
|
4371
|
+
totalCount: Maybe<Scalars['Int']['output']>;
|
|
4372
|
+
};
|
|
4373
|
+
/** An edge in a InputLogSession connection. */
|
|
4374
|
+
export type InputLogSessionEdge = {
|
|
4375
|
+
__typename?: 'InputLogSessionEdge';
|
|
4376
|
+
/** Opaque cursor for this edge. */
|
|
4377
|
+
cursor: Scalars['String']['output'];
|
|
4378
|
+
/** The node at the end of this edge. */
|
|
4379
|
+
node: InputLogSession;
|
|
4380
|
+
};
|
|
4381
|
+
/** Narrows inputLogSessions. All fields are optional and AND-combined. */
|
|
4382
|
+
export type InputLogSessionFilter = {
|
|
4383
|
+
/** Only sessions still active at or after this instant. */
|
|
4384
|
+
from?: InputMaybe<Scalars['DateTime']['input']>;
|
|
4385
|
+
/** Only sessions containing this client message type (0-255). */
|
|
4386
|
+
messageType?: InputMaybe<Scalars['Int']['input']>;
|
|
4387
|
+
/** Only sessions started at or before this instant. */
|
|
4388
|
+
to?: InputMaybe<Scalars['DateTime']['input']>;
|
|
4389
|
+
/** Only this user's sessions. Without manage_apps on the app, only your own user id is accepted (and is the default). */
|
|
4390
|
+
userId?: InputMaybe<Scalars['BigInt']['input']>;
|
|
4391
|
+
};
|
|
4231
4392
|
export type InviteOrgMemberInput = {
|
|
4232
4393
|
/** Organization to add the user to (BigInt as string). */
|
|
4233
4394
|
orgId: Scalars['BigInt']['input'];
|
|
@@ -4309,6 +4470,8 @@ export type Mutation = {
|
|
|
4309
4470
|
addChannelMember: GroupMember;
|
|
4310
4471
|
/** Add a user to a team, or approve their pending join request (upsert to active). Requires the 'manage_members' team permission (app admins bypass). Auto-assigns the team's default role if configured. */
|
|
4311
4472
|
addTeamMember: GroupMember;
|
|
4473
|
+
/** OPERATOR: allow an email address (a contractor or partner) or a domain on this tier, optionally until a date. The address must still be verified to count. Refused on prod. */
|
|
4474
|
+
addTierAccessRule: TierAccessRule;
|
|
4312
4475
|
/** Admit one player-code listing, author, or authoring org to an app's strict allow list. Requires 'manage_compute'. Idempotency is explicit: an identical active entry returns a conflict instead of silently creating duplicates. SIDE EFFECTS: audit row + replica sync. */
|
|
4313
4476
|
admitAppCode: AppCodeAdmission;
|
|
4314
4477
|
/** Soft-delete an access tier by setting its status to 'archived' (the row is retained, NOT hard-deleted) and notifies the game API. Requires the 'manage_access_tiers' permission on the app that owns the tier; super admins bypass. Existing user grants on this tier are NOT automatically revoked. Throws if the tier is not found. */
|
|
@@ -4385,6 +4548,8 @@ export type Mutation = {
|
|
|
4385
4548
|
createTeam: Group;
|
|
4386
4549
|
/** Create a custom (non-system) team role granting the given team permission keys. Requires the 'manage_roles' team permission (app admins bypass). Permission keys must be valid team permission keys (group_permission_defs). */
|
|
4387
4550
|
createTeamRole: GroupRole;
|
|
4551
|
+
/** OPERATOR: mint a provisioning token for a test harness. The secret is returned once. Refused on prod. */
|
|
4552
|
+
createTierAccessProvisioningToken: CreatedTierAccessProvisioningToken;
|
|
4388
4553
|
/** OPERATOR ONLY. Credits an organization wallet without a payment provider, for seeding a test environment or making an operator adjustment, and records it in the wallet ledger as an "admin_credit" transaction. Use this instead of writing to org_wallets by hand: it creates the wallet if absent, repairs a missing wallet id, and moves the balance and the ledger row together in one transaction. Pass a referenceId to make retries idempotent. SIDE EFFECT: re-evaluates the runtime gate for every shared app in the org, so a credit that clears an insufficient_funds denial lifts it immediately instead of leaving the app refusing clients. */
|
|
4389
4554
|
creditOrgWallet: WalletTransaction;
|
|
4390
4555
|
/** Publish a new immutable version of an app-scoped Crowdy Studio-curated common file and make it the current player-readable version. Requires an app-scoped token plus the app manage_compute permission. Old versions remain immutable for provenance; an idempotency key is strongly recommended for transport retries. */
|
|
@@ -4445,6 +4610,8 @@ export type Mutation = {
|
|
|
4445
4610
|
deleteUserAppState: UserAppState;
|
|
4446
4611
|
/** Close the UDP proxy session and socket for this game token. Unsubscribing from udpNotifications does not disconnect; use this mutation (or rely on server inactivity timeout). */
|
|
4447
4612
|
disconnectUdpProxy: Scalars['Boolean']['output'];
|
|
4613
|
+
/** OPERATOR: end the sessions and app tokens of these accounts (at most 1000), skipping any this tier admits. Returns how many had sessions ended. Refused on prod. */
|
|
4614
|
+
endTierAccessSessions: Scalars['Int']['output'];
|
|
4448
4615
|
/** Exchange a one-time portal authorization code (with the matching PKCE verifier) for an app-scoped gameplay token. Public (the code + verifier authorize the call); called by the destination game at its own origin so the game never sees the player's session token. */
|
|
4449
4616
|
exchangePortalCode: AppTokenResponse;
|
|
4450
4617
|
/** Make an earlier ck-exec version active again, a rollback. Running instances pick it up when they next start, as after a deploy. Requires the org 'manage_compute' permission. */
|
|
@@ -4505,6 +4672,8 @@ export type Mutation = {
|
|
|
4505
4672
|
grantGridPermissions: GridUserPermissions;
|
|
4506
4673
|
/** Org dashboard shortcut: the authenticated caller grants themselves access to an app using its default active tier. Requires that the caller is an active member of the app's owning org OR holds the 'manage_access_tiers' permission on the app. ENTITLEMENT CHANGE: upserts an active grant and notifies the game API. Errors if the app has no active tier, or the caller is neither a member nor a manager. */
|
|
4507
4674
|
grantMyAppAccess: AppUserAccess;
|
|
4675
|
+
/** OPERATOR: grant every existing account a prefix*@domain pattern matches that has no grant -- for bot rosters created before the gate. The domain must be a reserved test domain or a company domain. Dry run by default. Refused on prod. */
|
|
4676
|
+
grantTierAccessByPattern: GrantTierAccessByPatternResult;
|
|
4508
4677
|
/** Adds a user to an organization as a member. Requires the 'manage_members' permission on the target org (super admins bypass). */
|
|
4509
4678
|
inviteOrgMember: OrgMember;
|
|
4510
4679
|
/** Issue a standing grid claim invite (claim policy INVITE). Callable by designated approvers or studio staff holding manage_compute; the invitee then calls claimGridOwnership to take ownership. */
|
|
@@ -4575,6 +4744,10 @@ export type Mutation = {
|
|
|
4575
4744
|
revokeGroupFromGrid: Array<GridGroupGrant>;
|
|
4576
4745
|
/** Permanently deactivates an org token so it can no longer authenticate. Requires the 'manage_tokens' permission on the token's org (super admins bypass). DESTRUCTIVE and irreversible; the secret cannot be reactivated. Returns false if the token does not exist. */
|
|
4577
4746
|
revokeOrgToken: Scalars['Boolean']['output'];
|
|
4747
|
+
/** OPERATOR: revoke a provisioning token. With revokeAccounts, also clear the grant of every account it created and end their sessions. Refused on prod. */
|
|
4748
|
+
revokeTierAccessProvisioningToken: TierAccessProvisioningToken;
|
|
4749
|
+
/** OPERATOR: remove an entry from the list. Accounts it was admitting are refused at their next request, and their sessions and app tokens are ended. Refused on prod. */
|
|
4750
|
+
revokeTierAccessRule: TierAccessRule;
|
|
4578
4751
|
/** Reverts every voxel edit made by `userId` in `appId` between `from` and `to`, returning one RollbackVoxelEventResult per affected voxel (`applied` tells you whether each was actually changed). DEFAULTS to dryRun=true, which only PREVIEWS the planned reversions without writing; pass dryRun=false to actually apply them (DESTRUCTIVE — mutates world state). Requires a valid bearer token AND the `manage_apps` permission on the org that owns `appId` (super admins bypass). */
|
|
4579
4752
|
rollbackVoxelUpdates: Array<RollbackVoxelEventResult>;
|
|
4580
4753
|
/** OPERATOR ONLY. Runs the shared-usage billing tick once. It still bills only the last CLOSED clock hour — it will not charge an open hour. Use this to prove a closed-hour debit without waiting for the ~60s cron. Backdating usage rows is a local-test fixture, not something this mutation does on a live tier. */
|
|
@@ -4659,6 +4832,10 @@ export type Mutation = {
|
|
|
4659
4832
|
setTeamMemberRoles: GroupMember;
|
|
4660
4833
|
/** Set who may create teams in an app and the default membership policy for new teams. Requires app-admin ('manage_apps'). Affects future team creation only, not existing teams. */
|
|
4661
4834
|
setTeamPolicy: AppGroupPolicy;
|
|
4835
|
+
/** SUPER ADMIN: set this tier to OBSERVE (log what would be refused) or ENFORCE. Refused on prod, where the gate is always off. */
|
|
4836
|
+
setTierAccessMode: TierAccessSettings;
|
|
4837
|
+
/** OPERATOR: grant one account access to this tier regardless of its email (a service account, an unverifiable address), optionally until a date, or clear the grant. Clearing ends its sessions if nothing else admits it. Refused on prod. */
|
|
4838
|
+
setUserTierAccess: UserTierAccess;
|
|
4662
4839
|
/** Begins vaulting a card for off-session auto-billing. Returns a Stripe SetupIntent client secret the browser confirms; no charge is made here. Requires the 'manage_billing' org permission. */
|
|
4663
4840
|
setupSharedPaymentMethod: PaymentMethodSetup;
|
|
4664
4841
|
/** Complete a federated sign-in from the provider callback (code + state). Returns a session AuthResponse, creating/linking the account by provider identity. Public; first-party origins only (HOSTED_SIGN_IN_REQUIRED otherwise). */
|
|
@@ -4681,7 +4858,7 @@ export type Mutation = {
|
|
|
4681
4858
|
updateActor: Actor;
|
|
4682
4859
|
/** Replaces an actor’s `publicState` and/or `privateState` blobs (fields omitted from `input` are left unchanged). OWNER-EXCLUSIVE: only the actor’s owner may write (throws Unauthorized otherwise). Game-plane: requires an app token for the actor’s app (a session token or another app’s token is answered NotFound). `uuid` is the 32-character ASCII actor id; blobs are base64-encoded binary. */
|
|
4683
4860
|
updateActorState: Actor;
|
|
4684
|
-
/** Update mutable fields of an existing app (name, description, visibility, status, metadata, wildernessWritesOpen); only fields present in the input are changed. Requires the 'manage_apps' permission on the app (resolved via its org); super admins bypass. Use this to publish (status=LIVE), change visibility, or restore an archived app (status back to DRAFT/LIVE). Throws if the app id does not exist. */
|
|
4861
|
+
/** Update mutable fields of an existing app (name, description, visibility, status, metadata, wildernessWritesOpen, replayLoggingEnabled); only fields present in the input are changed. Turning replayLoggingEnabled on is refused with INPUT_LOG_FUNDS_NEEDED unless the org's wallet has a spendable balance or the org is billing-exempt. Requires the 'manage_apps' permission on the app (resolved via its org); super admins bypass. Use this to publish (status=LIVE), change visibility, or restore an archived app (status back to DRAFT/LIVE). Throws if the app id does not exist. */
|
|
4685
4862
|
updateApp: App;
|
|
4686
4863
|
/** Updates an avatar’s mutable fields (currently `name`) and returns it. OWNER-EXCLUSIVE: only the avatar’s owner may call this (throws Unauthorized otherwise). Requires a valid game token. To change state blobs use `updateAvatarState`. */
|
|
4687
4864
|
updateAvatar: Avatar;
|
|
@@ -4735,6 +4912,9 @@ export type MutationAddTeamMemberArgs = {
|
|
|
4735
4912
|
groupId: Scalars['BigInt']['input'];
|
|
4736
4913
|
userId: Scalars['BigInt']['input'];
|
|
4737
4914
|
};
|
|
4915
|
+
export type MutationAddTierAccessRuleArgs = {
|
|
4916
|
+
input: AddTierAccessRuleInput;
|
|
4917
|
+
};
|
|
4738
4918
|
export type MutationAdmitAppCodeArgs = {
|
|
4739
4919
|
input: AdmitAppCodeInput;
|
|
4740
4920
|
};
|
|
@@ -4853,6 +5033,9 @@ export type MutationCreateTeamArgs = {
|
|
|
4853
5033
|
export type MutationCreateTeamRoleArgs = {
|
|
4854
5034
|
input: CreateGroupRoleInput;
|
|
4855
5035
|
};
|
|
5036
|
+
export type MutationCreateTierAccessProvisioningTokenArgs = {
|
|
5037
|
+
input: CreateTierAccessProvisioningTokenInput;
|
|
5038
|
+
};
|
|
4856
5039
|
export type MutationCreditOrgWalletArgs = {
|
|
4857
5040
|
amountCents: Scalars['BigInt']['input'];
|
|
4858
5041
|
orgId: Scalars['BigInt']['input'];
|
|
@@ -4944,6 +5127,9 @@ export type MutationDeleteTeamRoleArgs = {
|
|
|
4944
5127
|
export type MutationDeleteUserAppStateArgs = {
|
|
4945
5128
|
appId: Scalars['BigInt']['input'];
|
|
4946
5129
|
};
|
|
5130
|
+
export type MutationEndTierAccessSessionsArgs = {
|
|
5131
|
+
userIds: Array<Scalars['BigInt']['input']>;
|
|
5132
|
+
};
|
|
4947
5133
|
export type MutationExchangePortalCodeArgs = {
|
|
4948
5134
|
input: ExchangePortalCodeInput;
|
|
4949
5135
|
};
|
|
@@ -5076,6 +5262,10 @@ export type MutationGrantGridPermissionsArgs = {
|
|
|
5076
5262
|
export type MutationGrantMyAppAccessArgs = {
|
|
5077
5263
|
appId: Scalars['BigInt']['input'];
|
|
5078
5264
|
};
|
|
5265
|
+
export type MutationGrantTierAccessByPatternArgs = {
|
|
5266
|
+
dryRun?: InputMaybe<Scalars['Boolean']['input']>;
|
|
5267
|
+
emailPattern: Scalars['String']['input'];
|
|
5268
|
+
};
|
|
5079
5269
|
export type MutationInviteOrgMemberArgs = {
|
|
5080
5270
|
input: InviteOrgMemberInput;
|
|
5081
5271
|
};
|
|
@@ -5195,6 +5385,13 @@ export type MutationRevokeOrgTokenArgs = {
|
|
|
5195
5385
|
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
5196
5386
|
orgTokenId: Scalars['BigInt']['input'];
|
|
5197
5387
|
};
|
|
5388
|
+
export type MutationRevokeTierAccessProvisioningTokenArgs = {
|
|
5389
|
+
revokeAccounts?: InputMaybe<Scalars['Boolean']['input']>;
|
|
5390
|
+
tokenId: Scalars['BigInt']['input'];
|
|
5391
|
+
};
|
|
5392
|
+
export type MutationRevokeTierAccessRuleArgs = {
|
|
5393
|
+
ruleId: Scalars['BigInt']['input'];
|
|
5394
|
+
};
|
|
5198
5395
|
export type MutationRollbackVoxelUpdatesArgs = {
|
|
5199
5396
|
input: RollbackVoxelUpdatesInput;
|
|
5200
5397
|
};
|
|
@@ -5352,6 +5549,14 @@ export type MutationSetTeamMemberRolesArgs = {
|
|
|
5352
5549
|
export type MutationSetTeamPolicyArgs = {
|
|
5353
5550
|
input: SetTeamPolicyInput;
|
|
5354
5551
|
};
|
|
5552
|
+
export type MutationSetTierAccessModeArgs = {
|
|
5553
|
+
mode: TierAccessStoredMode;
|
|
5554
|
+
};
|
|
5555
|
+
export type MutationSetUserTierAccessArgs = {
|
|
5556
|
+
expiresAt?: InputMaybe<Scalars['DateTime']['input']>;
|
|
5557
|
+
granted: Scalars['Boolean']['input'];
|
|
5558
|
+
userId: Scalars['BigInt']['input'];
|
|
5559
|
+
};
|
|
5355
5560
|
export type MutationSetupSharedPaymentMethodArgs = {
|
|
5356
5561
|
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
5357
5562
|
orgId: Scalars['BigInt']['input'];
|
|
@@ -5456,6 +5661,21 @@ export type MutationUpdateUserTypeArgs = {
|
|
|
5456
5661
|
export type MutationUpdateVoxelArgs = {
|
|
5457
5662
|
input: UpdateVoxelInput;
|
|
5458
5663
|
};
|
|
5664
|
+
/** The signed-in account's access to this tier. Callable while access is pending or denied, so a client can say why it cannot continue. */
|
|
5665
|
+
export type MyTierAccess = {
|
|
5666
|
+
__typename?: 'MyTierAccess';
|
|
5667
|
+
/** True when refusals are enforced rather than only logged. */
|
|
5668
|
+
enforced: Scalars['Boolean']['output'];
|
|
5669
|
+
/** When the grant or listing ends, if it does. */
|
|
5670
|
+
expiresAt: Maybe<Scalars['DateTime']['output']>;
|
|
5671
|
+
/** A sentence explaining the status. */
|
|
5672
|
+
message: Scalars['String']['output'];
|
|
5673
|
+
/** True on dev and test. */
|
|
5674
|
+
restricted: Scalars['Boolean']['output'];
|
|
5675
|
+
status: TierAccessStatus;
|
|
5676
|
+
/** Why access is granted: platform_role, operator_grant, provisioning or verified_email. */
|
|
5677
|
+
via: Maybe<Scalars['String']['output']>;
|
|
5678
|
+
};
|
|
5459
5679
|
/** A grid overlapping a scanned region (returned by nearbyGrids). Bounds only — no permission keys. */
|
|
5460
5680
|
export type NearbyGrid = {
|
|
5461
5681
|
__typename?: 'NearbyGrid';
|
|
@@ -6467,6 +6687,10 @@ export type Query = {
|
|
|
6467
6687
|
hostedGamePublishes: Array<HostedGamePublish>;
|
|
6468
6688
|
/** The LIVE and LISTED hosted third-party games, for the Overworld lobby and the marketplace. PUBLIC. Empty when the tier does not host third-party games. Operators see every game with allHostedGames. */
|
|
6469
6689
|
hostedGames: Array<HostedGame>;
|
|
6690
|
+
/** The recorded inputs of one session, oldest first, each exactly as the client sent it (without its authentication tail). Read from the input log by the offset ranges its index holds, so inputs past the published retention are gone even while the session is still listed. With 'manage_apps' on the app you may read any session; anyone else may read only their own, and any other session answers NOT_FOUND. Game plane: send the app-scoped token for this app to the app's datacenter. Page with `first` (default 50, max 200) and `after`; a page can hold fewer than `first` inputs when it stopped at its time or scan limit, so keep paging while hasNextPage is true. INPUT_LOG_UNAVAILABLE when input logging is not configured on this deployment, and also, retryable with the same cursor, when the log cannot be read right now. */
|
|
6691
|
+
inputLogMessages: InputLogMessageConnection;
|
|
6692
|
+
/** Recorded client sessions of an app with replay logging on (App.replayLoggingEnabled), newest first. With 'manage_apps' on the app you see every session and may filter by userId; anyone else sees only their own, and asking for another user's is FORBIDDEN. Game plane: send the app-scoped token for this app to the app's datacenter. Page with `first` (default 50, max 200) and `after`. INPUT_LOG_UNAVAILABLE when input logging is not configured on this deployment. */
|
|
6693
|
+
inputLogSessions: InputLogSessionConnection;
|
|
6470
6694
|
/** Lists recorded voxel edits for all chunks within a cubic (Chebyshev) radius of a center chunk, grouped per chunk and ordered by increasing distance, paginated over chunks. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
6471
6695
|
listVoxelUpdatesByDistance: VoxelUpdatesByDistanceResponse;
|
|
6472
6696
|
/** Lists recorded voxel edits for a single chunk (optionally only those at/after `since`), newest first. Requires a valid bearer token; app-scoped tokens are limited to their own app. Read-only. */
|
|
@@ -6509,6 +6733,8 @@ export type Query = {
|
|
|
6509
6733
|
myPropertyTokens: UserPropertyTokenData;
|
|
6510
6734
|
/** The caller's teams in an app, with their roles and effective team permissions. Use this to discover which teams the current user belongs to and what they may do in each. */
|
|
6511
6735
|
myTeams: Array<GroupMembership>;
|
|
6736
|
+
/** The signed-in account's access to this tier: GRANTED, PENDING_VERIFICATION (confirm the email address), DENIED, or NOT_RESTRICTED on prod. Requires a session token, and stays callable while access is pending or denied. */
|
|
6737
|
+
myTierAccess: MyTierAccess;
|
|
6512
6738
|
/** List every grid overlapping a chunk-coordinate bounding box, each with the given user's effective permission keys on it. Useful for previewing what a user can do across a region (e.g. around their current position). Requires app-admin ('manage_apps'). */
|
|
6513
6739
|
nearbyGridPermissions: Array<NearbyGridPermissions>;
|
|
6514
6740
|
/** List every grid overlapping a chunk-coordinate bounding box, returning gridId and bounds only. Player-safe: no permission keys and no impersonation userId. Requires an app-scoped token for the same app. */
|
|
@@ -6585,6 +6811,16 @@ export type Query = {
|
|
|
6585
6811
|
teamRoles: Array<GroupRole>;
|
|
6586
6812
|
/** List all active teams in an app (not just the caller's). */
|
|
6587
6813
|
teams: Array<Group>;
|
|
6814
|
+
/** OPERATOR: who on this tier would be refused -- counts, a page of refused accounts with what they hold, and organizations with no admitted member. Reads every account; for review, not for polling. Refused on prod. */
|
|
6815
|
+
tierAccessInventory: TierAccessInventory;
|
|
6816
|
+
/** Whether this tier is an internal environment (dev and test are: Crowded Kingdoms staff, approved contractors and test harnesses only), with a sentence for sign-in pages and the production Studio address. Public. */
|
|
6817
|
+
tierAccessPolicy: TierAccessPolicy;
|
|
6818
|
+
/** OPERATOR: the provisioning tokens of this tier (never their secrets). */
|
|
6819
|
+
tierAccessProvisioningTokens: Array<TierAccessProvisioningToken>;
|
|
6820
|
+
/** OPERATOR: the addresses and domains allowed on this tier besides the company domains. */
|
|
6821
|
+
tierAccessRules: Array<TierAccessRule>;
|
|
6822
|
+
/** OPERATOR: the tier-access mode and settings of this tier. */
|
|
6823
|
+
tierAccessSettings: TierAccessSettings;
|
|
6588
6824
|
/** UDP proxy session status for the game token on this request. Without a game token, returns connected: false. Does not open a session—use udpNotifications or connectUdpProxy. */
|
|
6589
6825
|
udpProxyConnectionStatus: UdpProxyConnectionStatus;
|
|
6590
6826
|
/** Looks up a single user by id. Requires a valid game token. */
|
|
@@ -6595,6 +6831,8 @@ export type Query = {
|
|
|
6595
6831
|
userAppStates: Array<UserAppState>;
|
|
6596
6832
|
/** Lists the avatars owned by `userId`. Requires a valid game token. Owner-aware: when the caller is NOT the owner, each avatar’s `privateState` is stripped (returned null); `publicState` is always included. State blobs are base64-encoded binary. */
|
|
6597
6833
|
userAvatars: Array<Avatar>;
|
|
6834
|
+
/** OPERATOR: one account's access to this tier and its stored grant. */
|
|
6835
|
+
userTierAccess: UserTierAccess;
|
|
6598
6836
|
/** Super admin only. Paginated user search across email, gamertag, disambiguation, and exact user_id. Relay cursor connection; prefer this over the offset-based usersPaginated. */
|
|
6599
6837
|
usersConnection: UsersConnection;
|
|
6600
6838
|
/** SUPER-ADMIN ONLY paginated user search; replaces the legacy `users`/`usersByGamertag`/`usersByEmail` queries. `query` is ILIKE-prefix matched against email, gamertag, and disambiguation, plus an exact user_id match. Requires a super-admin bearer game token. */
|
|
@@ -6992,6 +7230,19 @@ export type QueryHostedGamePublishesArgs = {
|
|
|
6992
7230
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
6993
7231
|
slug: Scalars['String']['input'];
|
|
6994
7232
|
};
|
|
7233
|
+
export type QueryInputLogMessagesArgs = {
|
|
7234
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
7235
|
+
appId: Scalars['BigInt']['input'];
|
|
7236
|
+
filter?: InputMaybe<InputLogMessageFilter>;
|
|
7237
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
7238
|
+
gameTokenId: Scalars['BigInt']['input'];
|
|
7239
|
+
};
|
|
7240
|
+
export type QueryInputLogSessionsArgs = {
|
|
7241
|
+
after?: InputMaybe<Scalars['String']['input']>;
|
|
7242
|
+
appId: Scalars['BigInt']['input'];
|
|
7243
|
+
filter?: InputMaybe<InputLogSessionFilter>;
|
|
7244
|
+
first?: InputMaybe<Scalars['Int']['input']>;
|
|
7245
|
+
};
|
|
6995
7246
|
export type QueryListVoxelUpdatesByDistanceArgs = {
|
|
6996
7247
|
input: ListVoxelUpdatesByDistanceInput;
|
|
6997
7248
|
};
|
|
@@ -7104,6 +7355,16 @@ export type QueryTeamRolesArgs = {
|
|
|
7104
7355
|
export type QueryTeamsArgs = {
|
|
7105
7356
|
appId: Scalars['BigInt']['input'];
|
|
7106
7357
|
};
|
|
7358
|
+
export type QueryTierAccessInventoryArgs = {
|
|
7359
|
+
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
7360
|
+
offset?: InputMaybe<Scalars['Int']['input']>;
|
|
7361
|
+
};
|
|
7362
|
+
export type QueryTierAccessProvisioningTokensArgs = {
|
|
7363
|
+
includeRevoked?: InputMaybe<Scalars['Boolean']['input']>;
|
|
7364
|
+
};
|
|
7365
|
+
export type QueryTierAccessRulesArgs = {
|
|
7366
|
+
includeRevoked?: InputMaybe<Scalars['Boolean']['input']>;
|
|
7367
|
+
};
|
|
7107
7368
|
export type QueryUserArgs = {
|
|
7108
7369
|
id: Scalars['BigInt']['input'];
|
|
7109
7370
|
};
|
|
@@ -7113,6 +7374,9 @@ export type QueryUserAppStateArgs = {
|
|
|
7113
7374
|
export type QueryUserAvatarsArgs = {
|
|
7114
7375
|
userId: Scalars['BigInt']['input'];
|
|
7115
7376
|
};
|
|
7377
|
+
export type QueryUserTierAccessArgs = {
|
|
7378
|
+
userId: Scalars['BigInt']['input'];
|
|
7379
|
+
};
|
|
7116
7380
|
export type QueryUsersConnectionArgs = {
|
|
7117
7381
|
after?: InputMaybe<Scalars['String']['input']>;
|
|
7118
7382
|
first?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -7967,6 +8231,138 @@ export type TeleportResponse = {
|
|
|
7967
8231
|
/** True when the teleport is authorized/accepted; false otherwise (inspect errorCode for the reason). */
|
|
7968
8232
|
success: Scalars['Boolean']['output'];
|
|
7969
8233
|
};
|
|
8234
|
+
export type TierAccessCount = {
|
|
8235
|
+
__typename?: 'TierAccessCount';
|
|
8236
|
+
count: Scalars['Int']['output'];
|
|
8237
|
+
key: Scalars['String']['output'];
|
|
8238
|
+
};
|
|
8239
|
+
/** OPERATOR: who on this tier would be refused. */
|
|
8240
|
+
export type TierAccessInventory = {
|
|
8241
|
+
__typename?: 'TierAccessInventory';
|
|
8242
|
+
/** A page of the refused accounts, newest first. */
|
|
8243
|
+
accounts: Array<TierAccessInventoryAccount>;
|
|
8244
|
+
/** Refused (pending + denied) accounts in total. */
|
|
8245
|
+
accountsTotal: Scalars['Int']['output'];
|
|
8246
|
+
denied: Scalars['Int']['output'];
|
|
8247
|
+
granted: Scalars['Int']['output'];
|
|
8248
|
+
/** Granted accounts by reason. */
|
|
8249
|
+
grantedByVia: Array<TierAccessCount>;
|
|
8250
|
+
mode: TierAccessMode;
|
|
8251
|
+
orgsWithoutGrantedMember: Array<TierAccessInventoryOrg>;
|
|
8252
|
+
pending: Scalars['Int']['output'];
|
|
8253
|
+
tier: Maybe<Scalars['String']['output']>;
|
|
8254
|
+
totalAccounts: Scalars['Int']['output'];
|
|
8255
|
+
};
|
|
8256
|
+
/** OPERATOR: an account this tier would refuse, with what it holds. */
|
|
8257
|
+
export type TierAccessInventoryAccount = {
|
|
8258
|
+
__typename?: 'TierAccessInventoryAccount';
|
|
8259
|
+
activeAppTokens: Scalars['Int']['output'];
|
|
8260
|
+
activeSessions: Scalars['Int']['output'];
|
|
8261
|
+
appsCreated: Scalars['Int']['output'];
|
|
8262
|
+
/** Holds app tokens, organizations or apps -- the accounts whose sessions a cutover should end. */
|
|
8263
|
+
ckActivity: Scalars['Boolean']['output'];
|
|
8264
|
+
createdAt: Maybe<Scalars['DateTime']['output']>;
|
|
8265
|
+
/** Created through Crowd Altar (it carries a username). */
|
|
8266
|
+
createdViaCrowdAltar: Scalars['Boolean']['output'];
|
|
8267
|
+
email: Maybe<Scalars['String']['output']>;
|
|
8268
|
+
isConfirmed: Scalars['Boolean']['output'];
|
|
8269
|
+
/** Slugs of the organizations it belongs to. */
|
|
8270
|
+
orgs: Array<Scalars['String']['output']>;
|
|
8271
|
+
status: TierAccessStatus;
|
|
8272
|
+
userId: Scalars['BigInt']['output'];
|
|
8273
|
+
/** Set when the account was created through Crowd Altar. */
|
|
8274
|
+
username: Maybe<Scalars['String']['output']>;
|
|
8275
|
+
};
|
|
8276
|
+
/** OPERATOR: an organization none of whose members may use this tier. */
|
|
8277
|
+
export type TierAccessInventoryOrg = {
|
|
8278
|
+
__typename?: 'TierAccessInventoryOrg';
|
|
8279
|
+
apps: Scalars['Int']['output'];
|
|
8280
|
+
liveHostedGames: Scalars['Int']['output'];
|
|
8281
|
+
members: Scalars['Int']['output'];
|
|
8282
|
+
name: Scalars['String']['output'];
|
|
8283
|
+
orgId: Scalars['BigInt']['output'];
|
|
8284
|
+
slug: Scalars['String']['output'];
|
|
8285
|
+
status: Scalars['String']['output'];
|
|
8286
|
+
};
|
|
8287
|
+
/** How the dev/test staff-only gate behaves on this tier. OFF on prod and on any tier that is not dev or test; OBSERVE logs what would be refused; ENFORCE refuses. */
|
|
8288
|
+
export declare enum TierAccessMode {
|
|
8289
|
+
Enforce = "ENFORCE",
|
|
8290
|
+
Observe = "OBSERVE",
|
|
8291
|
+
Off = "OFF"
|
|
8292
|
+
}
|
|
8293
|
+
/** Whether this tier is an internal (staff-only) environment, for the sign-in pages. Public. */
|
|
8294
|
+
export type TierAccessPolicy = {
|
|
8295
|
+
__typename?: 'TierAccessPolicy';
|
|
8296
|
+
/** True when refusals are enforced; false while a restricted tier only logs them (observe), and off the restricted tiers. Read by the control plane status check. */
|
|
8297
|
+
enforced: Scalars['Boolean']['output'];
|
|
8298
|
+
/** A sentence for the sign-in pages to show when restricted. */
|
|
8299
|
+
message: Maybe<Scalars['String']['output']>;
|
|
8300
|
+
/** Production Studio, where outside developers create accounts. */
|
|
8301
|
+
publicStudioUrl: Scalars['String']['output'];
|
|
8302
|
+
/** True on dev and test: accounts need a verified company address, an operator listing or a provisioning grant. */
|
|
8303
|
+
restricted: Scalars['Boolean']['output'];
|
|
8304
|
+
};
|
|
8305
|
+
/** OPERATOR: a credential test harnesses send on register to create accounts that may use a restricted tier. The secret is never returned after creation. */
|
|
8306
|
+
export type TierAccessProvisioningToken = {
|
|
8307
|
+
__typename?: 'TierAccessProvisioningToken';
|
|
8308
|
+
accountsCreated: Scalars['Int']['output'];
|
|
8309
|
+
createdAt: Scalars['DateTime']['output'];
|
|
8310
|
+
createdBy: Maybe<Scalars['BigInt']['output']>;
|
|
8311
|
+
/** Addresses it may create, as prefix*@domain. */
|
|
8312
|
+
emailPatterns: Array<Scalars['String']['output']>;
|
|
8313
|
+
expiresAt: Scalars['DateTime']['output'];
|
|
8314
|
+
label: Scalars['String']['output'];
|
|
8315
|
+
lastUsedAt: Maybe<Scalars['DateTime']['output']>;
|
|
8316
|
+
maxAccounts: Scalars['Int']['output'];
|
|
8317
|
+
revokedAt: Maybe<Scalars['DateTime']['output']>;
|
|
8318
|
+
tokenId: Scalars['BigInt']['output'];
|
|
8319
|
+
};
|
|
8320
|
+
/** OPERATOR: one entry on a tier access list. */
|
|
8321
|
+
export type TierAccessRule = {
|
|
8322
|
+
__typename?: 'TierAccessRule';
|
|
8323
|
+
createdAt: Scalars['DateTime']['output'];
|
|
8324
|
+
createdBy: Maybe<Scalars['BigInt']['output']>;
|
|
8325
|
+
expiresAt: Maybe<Scalars['DateTime']['output']>;
|
|
8326
|
+
kind: TierAccessRuleKind;
|
|
8327
|
+
note: Maybe<Scalars['String']['output']>;
|
|
8328
|
+
revokedAt: Maybe<Scalars['DateTime']['output']>;
|
|
8329
|
+
revokedBy: Maybe<Scalars['BigInt']['output']>;
|
|
8330
|
+
ruleId: Scalars['BigInt']['output'];
|
|
8331
|
+
/** The lowercased address or domain. */
|
|
8332
|
+
value: Scalars['String']['output'];
|
|
8333
|
+
};
|
|
8334
|
+
/** An exact email address, or every address on one domain. */
|
|
8335
|
+
export declare enum TierAccessRuleKind {
|
|
8336
|
+
Email = "EMAIL",
|
|
8337
|
+
EmailDomain = "EMAIL_DOMAIN"
|
|
8338
|
+
}
|
|
8339
|
+
/** OPERATOR: the tier-access settings of this tier. */
|
|
8340
|
+
export type TierAccessSettings = {
|
|
8341
|
+
__typename?: 'TierAccessSettings';
|
|
8342
|
+
/** Domains whose verified addresses are always allowed. */
|
|
8343
|
+
companyDomains: Array<Scalars['String']['output']>;
|
|
8344
|
+
/** The effective mode. */
|
|
8345
|
+
mode: TierAccessMode;
|
|
8346
|
+
publicStudioUrl: Scalars['String']['output'];
|
|
8347
|
+
/** The stored mode; null means none was set (a restricted tier then observes). */
|
|
8348
|
+
storedMode: Maybe<TierAccessStoredMode>;
|
|
8349
|
+
/** The tier this instance serves. */
|
|
8350
|
+
tier: Maybe<Scalars['String']['output']>;
|
|
8351
|
+
updatedAt: Maybe<Scalars['DateTime']['output']>;
|
|
8352
|
+
updatedBy: Maybe<Scalars['BigInt']['output']>;
|
|
8353
|
+
};
|
|
8354
|
+
/** An account on this tier: NOT_RESTRICTED (prod, or no gate), GRANTED, PENDING_VERIFICATION (a listed address that is not confirmed yet), or DENIED. */
|
|
8355
|
+
export declare enum TierAccessStatus {
|
|
8356
|
+
Denied = "DENIED",
|
|
8357
|
+
Granted = "GRANTED",
|
|
8358
|
+
NotRestricted = "NOT_RESTRICTED",
|
|
8359
|
+
PendingVerification = "PENDING_VERIFICATION"
|
|
8360
|
+
}
|
|
8361
|
+
/** The mode an operator can set on a restricted tier. */
|
|
8362
|
+
export declare enum TierAccessStoredMode {
|
|
8363
|
+
Enforce = "ENFORCE",
|
|
8364
|
+
Observe = "OBSERVE"
|
|
8365
|
+
}
|
|
7970
8366
|
export type TransferGridOwnershipInput = {
|
|
7971
8367
|
/** App that contains the grid. */
|
|
7972
8368
|
appId: Scalars['BigInt']['input'];
|
|
@@ -8120,6 +8516,8 @@ export type UpdateAppInput = {
|
|
|
8120
8516
|
metadata?: InputMaybe<Scalars['String']['input']>;
|
|
8121
8517
|
/** New display name (1-256 chars). Omit to leave unchanged. */
|
|
8122
8518
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
8519
|
+
/** Turn replay logging on (true) or off (false): record every client input the realtime servers accept for this app, kept for the input log's published retention and billed as stored input logs (input_log_storage_byte_hours, no free allowance). Turning it ON is refused with INPUT_LOG_FUNDS_NEEDED unless the org's wallet has a spendable balance or the org is billing-exempt; turning it off always succeeds. Recording starts and stops within about 15 seconds. Omit to leave unchanged. */
|
|
8520
|
+
replayLoggingEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
8123
8521
|
/** New lifecycle status; set LIVE to publish, or DRAFT/LIVE to restore an archived app. Omit to leave unchanged. */
|
|
8124
8522
|
status?: InputMaybe<AppStatus>;
|
|
8125
8523
|
/** New visibility (PUBLIC/UNLISTED/PRIVATE). Omit to leave unchanged. */
|
|
@@ -8352,6 +8750,23 @@ export type UserPropertyTokenData = {
|
|
|
8352
8750
|
/** Sum of available + inUse, as a decimal string. */
|
|
8353
8751
|
total: Scalars['String']['output'];
|
|
8354
8752
|
};
|
|
8753
|
+
/** OPERATOR: one account's access to this tier. */
|
|
8754
|
+
export type UserTierAccess = {
|
|
8755
|
+
__typename?: 'UserTierAccess';
|
|
8756
|
+
email: Maybe<Scalars['String']['output']>;
|
|
8757
|
+
expiresAt: Maybe<Scalars['DateTime']['output']>;
|
|
8758
|
+
/** When the stored grant ends. */
|
|
8759
|
+
grantExpiresAt: Maybe<Scalars['DateTime']['output']>;
|
|
8760
|
+
/** The stored grant: operator or provisioning, or null. */
|
|
8761
|
+
grantSource: Maybe<Scalars['String']['output']>;
|
|
8762
|
+
grantedAt: Maybe<Scalars['DateTime']['output']>;
|
|
8763
|
+
/** Who granted it: operator:<user id>, token:<token id> or loadtest-mint:<label>. */
|
|
8764
|
+
grantedBy: Maybe<Scalars['String']['output']>;
|
|
8765
|
+
isConfirmed: Scalars['Boolean']['output'];
|
|
8766
|
+
status: TierAccessStatus;
|
|
8767
|
+
userId: Scalars['BigInt']['output'];
|
|
8768
|
+
via: Maybe<Scalars['String']['output']>;
|
|
8769
|
+
};
|
|
8355
8770
|
/** A Relay cursor connection over User records. Page with first/after; pass pageInfo.endCursor back as after for the next page. */
|
|
8356
8771
|
export type UsersConnection = {
|
|
8357
8772
|
__typename?: 'UsersConnection';
|