@crowdedkingdoms/crowdyjs 18.4.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 +54 -0
- package/README.md +23 -15
- package/dist/binary-wire.d.ts +22 -0
- package/dist/binary-wire.d.ts.map +1 -1
- package/dist/binary-wire.js +59 -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/default-origin.d.ts +6 -6
- package/dist/default-origin.d.ts.map +1 -1
- package/dist/default-origin.js +6 -6
- 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/domains/udp.d.ts +29 -1
- package/dist/domains/udp.d.ts.map +1 -1
- package/dist/domains/udp.js +40 -2
- package/dist/generated/graphql-schema.d.ts +438 -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 +86 -0
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +9 -6
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- 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. */
|
|
@@ -4587,6 +4760,8 @@ export type Mutation = {
|
|
|
4587
4760
|
sendChannelMessage: Scalars['Boolean']['output'];
|
|
4588
4761
|
/** Send a custom, app-defined client event (identified by eventType, a uint16) for spatial replication to nearby chunks; nearby actors receive it as a ClientEventNotification. Requires a bearer game token; opens a UDP proxy session automatically if none exists. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING — NOT that the world processed it. Failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
4589
4762
|
sendClientEvent: Scalars['Boolean']['output'];
|
|
4763
|
+
/** Publish a message to a channel that only reaches members near an origin chunk: a member receives it, as an ordinary ChannelMessageNotification on udpNotifications, when one of its live actors is in the same app within maxDistance chunks of input.chunk (straight-line distance between chunk coordinates, boundary included). A member with no live actor does not receive it. Requires a bearer game token and the channel send_messages permission, as for sendChannelMessage; the origin app must be the token’s app. Opens a UDP proxy session automatically if none exists. The sender receives no echo. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING — NOT confirmation of delivery; failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications (UNAUTHORIZED without the send right, INVALID_APP_ID for another app), correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
4764
|
+
sendRangedChannelMessage: Scalars['Boolean']['output'];
|
|
4590
4765
|
/** Send a direct actor-to-actor message, delivered only to the actor identified by targetUuid (NOT broadcast to nearby actors). The sender must know the destination actor’s current chunk. Requires a bearer game token; opens a UDP proxy session automatically if none exists. The target receives a SingleActorMessageNotification on udpNotifications; the sender receives no echo. Returns Boolean! that is true only when the datagram was ACCEPTED FOR SENDING — NOT confirmation of delivery; failures arrive ASYNCHRONOUSLY as GenericErrorResponse on udpNotifications, correlated by the request sequenceNumber (correlation only — not an idempotency key; the server does not dedupe replays). */
|
|
4591
4766
|
sendSingleActorMessage: Scalars['Boolean']['output'];
|
|
4592
4767
|
/** Operator only (is_operator). Sends a plain test message to one address and returns the SES message id. SIDE EFFECTS: a real outbound email billed to the shared SES identity, and a `send` row in email_events. Prefer the AWS mailbox simulator (success@ / bounce@ / complaint@simulator.amazonses.com), which exercises the whole path without touching a real inbox or a real reputation. `sent: true` with `simulated: true` means SEND_EMAILS is off and nothing left the building -- read both fields. */
|
|
@@ -4657,6 +4832,10 @@ export type Mutation = {
|
|
|
4657
4832
|
setTeamMemberRoles: GroupMember;
|
|
4658
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. */
|
|
4659
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;
|
|
4660
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. */
|
|
4661
4840
|
setupSharedPaymentMethod: PaymentMethodSetup;
|
|
4662
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). */
|
|
@@ -4679,7 +4858,7 @@ export type Mutation = {
|
|
|
4679
4858
|
updateActor: Actor;
|
|
4680
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. */
|
|
4681
4860
|
updateActorState: Actor;
|
|
4682
|
-
/** 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. */
|
|
4683
4862
|
updateApp: App;
|
|
4684
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`. */
|
|
4685
4864
|
updateAvatar: Avatar;
|
|
@@ -4733,6 +4912,9 @@ export type MutationAddTeamMemberArgs = {
|
|
|
4733
4912
|
groupId: Scalars['BigInt']['input'];
|
|
4734
4913
|
userId: Scalars['BigInt']['input'];
|
|
4735
4914
|
};
|
|
4915
|
+
export type MutationAddTierAccessRuleArgs = {
|
|
4916
|
+
input: AddTierAccessRuleInput;
|
|
4917
|
+
};
|
|
4736
4918
|
export type MutationAdmitAppCodeArgs = {
|
|
4737
4919
|
input: AdmitAppCodeInput;
|
|
4738
4920
|
};
|
|
@@ -4851,6 +5033,9 @@ export type MutationCreateTeamArgs = {
|
|
|
4851
5033
|
export type MutationCreateTeamRoleArgs = {
|
|
4852
5034
|
input: CreateGroupRoleInput;
|
|
4853
5035
|
};
|
|
5036
|
+
export type MutationCreateTierAccessProvisioningTokenArgs = {
|
|
5037
|
+
input: CreateTierAccessProvisioningTokenInput;
|
|
5038
|
+
};
|
|
4854
5039
|
export type MutationCreditOrgWalletArgs = {
|
|
4855
5040
|
amountCents: Scalars['BigInt']['input'];
|
|
4856
5041
|
orgId: Scalars['BigInt']['input'];
|
|
@@ -4942,6 +5127,9 @@ export type MutationDeleteTeamRoleArgs = {
|
|
|
4942
5127
|
export type MutationDeleteUserAppStateArgs = {
|
|
4943
5128
|
appId: Scalars['BigInt']['input'];
|
|
4944
5129
|
};
|
|
5130
|
+
export type MutationEndTierAccessSessionsArgs = {
|
|
5131
|
+
userIds: Array<Scalars['BigInt']['input']>;
|
|
5132
|
+
};
|
|
4945
5133
|
export type MutationExchangePortalCodeArgs = {
|
|
4946
5134
|
input: ExchangePortalCodeInput;
|
|
4947
5135
|
};
|
|
@@ -5074,6 +5262,10 @@ export type MutationGrantGridPermissionsArgs = {
|
|
|
5074
5262
|
export type MutationGrantMyAppAccessArgs = {
|
|
5075
5263
|
appId: Scalars['BigInt']['input'];
|
|
5076
5264
|
};
|
|
5265
|
+
export type MutationGrantTierAccessByPatternArgs = {
|
|
5266
|
+
dryRun?: InputMaybe<Scalars['Boolean']['input']>;
|
|
5267
|
+
emailPattern: Scalars['String']['input'];
|
|
5268
|
+
};
|
|
5077
5269
|
export type MutationInviteOrgMemberArgs = {
|
|
5078
5270
|
input: InviteOrgMemberInput;
|
|
5079
5271
|
};
|
|
@@ -5193,6 +5385,13 @@ export type MutationRevokeOrgTokenArgs = {
|
|
|
5193
5385
|
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
5194
5386
|
orgTokenId: Scalars['BigInt']['input'];
|
|
5195
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
|
+
};
|
|
5196
5395
|
export type MutationRollbackVoxelUpdatesArgs = {
|
|
5197
5396
|
input: RollbackVoxelUpdatesInput;
|
|
5198
5397
|
};
|
|
@@ -5208,6 +5407,9 @@ export type MutationSendChannelMessageArgs = {
|
|
|
5208
5407
|
export type MutationSendClientEventArgs = {
|
|
5209
5408
|
input: ClientEventNotificationInput;
|
|
5210
5409
|
};
|
|
5410
|
+
export type MutationSendRangedChannelMessageArgs = {
|
|
5411
|
+
input: RangedChannelMessageInput;
|
|
5412
|
+
};
|
|
5211
5413
|
export type MutationSendSingleActorMessageArgs = {
|
|
5212
5414
|
input: SingleActorMessageInput;
|
|
5213
5415
|
};
|
|
@@ -5347,6 +5549,14 @@ export type MutationSetTeamMemberRolesArgs = {
|
|
|
5347
5549
|
export type MutationSetTeamPolicyArgs = {
|
|
5348
5550
|
input: SetTeamPolicyInput;
|
|
5349
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
|
+
};
|
|
5350
5560
|
export type MutationSetupSharedPaymentMethodArgs = {
|
|
5351
5561
|
idempotencyKey?: InputMaybe<Scalars['String']['input']>;
|
|
5352
5562
|
orgId: Scalars['BigInt']['input'];
|
|
@@ -5451,6 +5661,21 @@ export type MutationUpdateUserTypeArgs = {
|
|
|
5451
5661
|
export type MutationUpdateVoxelArgs = {
|
|
5452
5662
|
input: UpdateVoxelInput;
|
|
5453
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
|
+
};
|
|
5454
5679
|
/** A grid overlapping a scanned region (returned by nearbyGrids). Bounds only — no permission keys. */
|
|
5455
5680
|
export type NearbyGrid = {
|
|
5456
5681
|
__typename?: 'NearbyGrid';
|
|
@@ -6462,6 +6687,10 @@ export type Query = {
|
|
|
6462
6687
|
hostedGamePublishes: Array<HostedGamePublish>;
|
|
6463
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. */
|
|
6464
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;
|
|
6465
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. */
|
|
6466
6695
|
listVoxelUpdatesByDistance: VoxelUpdatesByDistanceResponse;
|
|
6467
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. */
|
|
@@ -6504,6 +6733,8 @@ export type Query = {
|
|
|
6504
6733
|
myPropertyTokens: UserPropertyTokenData;
|
|
6505
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. */
|
|
6506
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;
|
|
6507
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'). */
|
|
6508
6739
|
nearbyGridPermissions: Array<NearbyGridPermissions>;
|
|
6509
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. */
|
|
@@ -6580,6 +6811,16 @@ export type Query = {
|
|
|
6580
6811
|
teamRoles: Array<GroupRole>;
|
|
6581
6812
|
/** List all active teams in an app (not just the caller's). */
|
|
6582
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;
|
|
6583
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. */
|
|
6584
6825
|
udpProxyConnectionStatus: UdpProxyConnectionStatus;
|
|
6585
6826
|
/** Looks up a single user by id. Requires a valid game token. */
|
|
@@ -6590,6 +6831,8 @@ export type Query = {
|
|
|
6590
6831
|
userAppStates: Array<UserAppState>;
|
|
6591
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. */
|
|
6592
6833
|
userAvatars: Array<Avatar>;
|
|
6834
|
+
/** OPERATOR: one account's access to this tier and its stored grant. */
|
|
6835
|
+
userTierAccess: UserTierAccess;
|
|
6593
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. */
|
|
6594
6837
|
usersConnection: UsersConnection;
|
|
6595
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. */
|
|
@@ -6987,6 +7230,19 @@ export type QueryHostedGamePublishesArgs = {
|
|
|
6987
7230
|
limit?: InputMaybe<Scalars['Int']['input']>;
|
|
6988
7231
|
slug: Scalars['String']['input'];
|
|
6989
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
|
+
};
|
|
6990
7246
|
export type QueryListVoxelUpdatesByDistanceArgs = {
|
|
6991
7247
|
input: ListVoxelUpdatesByDistanceInput;
|
|
6992
7248
|
};
|
|
@@ -7099,6 +7355,16 @@ export type QueryTeamRolesArgs = {
|
|
|
7099
7355
|
export type QueryTeamsArgs = {
|
|
7100
7356
|
appId: Scalars['BigInt']['input'];
|
|
7101
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
|
+
};
|
|
7102
7368
|
export type QueryUserArgs = {
|
|
7103
7369
|
id: Scalars['BigInt']['input'];
|
|
7104
7370
|
};
|
|
@@ -7108,6 +7374,9 @@ export type QueryUserAppStateArgs = {
|
|
|
7108
7374
|
export type QueryUserAvatarsArgs = {
|
|
7109
7375
|
userId: Scalars['BigInt']['input'];
|
|
7110
7376
|
};
|
|
7377
|
+
export type QueryUserTierAccessArgs = {
|
|
7378
|
+
userId: Scalars['BigInt']['input'];
|
|
7379
|
+
};
|
|
7111
7380
|
export type QueryUsersConnectionArgs = {
|
|
7112
7381
|
after?: InputMaybe<Scalars['String']['input']>;
|
|
7113
7382
|
first?: InputMaybe<Scalars['Int']['input']>;
|
|
@@ -7149,6 +7418,23 @@ export type QueryWalletTransactionsConnectionArgs = {
|
|
|
7149
7418
|
first?: InputMaybe<Scalars['Int']['input']>;
|
|
7150
7419
|
orgId: Scalars['BigInt']['input'];
|
|
7151
7420
|
};
|
|
7421
|
+
/** Input for publishing a channel message that only reaches members near an origin chunk. A member receives it when one of its live actors is in the same app within maxDistance chunks of the origin, measured as the straight-line (Euclidean) distance between chunk coordinates, boundary included; a member with no live actor does not receive it. Members receive an ordinary ChannelMessageNotification. The sender must have the channel send_messages permission, exactly as for sendChannelMessage. */
|
|
7422
|
+
export type RangedChannelMessageInput = {
|
|
7423
|
+
/** The app the origin chunk is in. Must be the app this token is scoped to (the game server answers INVALID_APP_ID otherwise). */
|
|
7424
|
+
appId: Scalars['BigInt']['input'];
|
|
7425
|
+
/** The channel id (groups.group_id) to publish to. */
|
|
7426
|
+
channelId: Scalars['BigInt']['input'];
|
|
7427
|
+
/** The origin chunk distance is measured from, usually the chunk of the sending actor. A chunk is a 16x16x16 voxel cube. */
|
|
7428
|
+
chunk: ChunkCoordinatesInput;
|
|
7429
|
+
/** Largest straight-line distance from the origin chunk, in chunks, at which a member still receives the message: 0 (the origin chunk only) to 2147483647. Not capped at 8 and not the Chebyshev ring count spatial sends use. */
|
|
7430
|
+
maxDistance: Scalars['Int']['input'];
|
|
7431
|
+
/** The message payload, base64-encoded. Opaque to the server; decode per your application protocol. Max 1024 bytes. */
|
|
7432
|
+
payload: Scalars['String']['input'];
|
|
7433
|
+
/** Client-assigned correlation id for this datagram: a uint8 (0-255) that wraps at gameClientBootstrap.sequenceNumberModulo (256); defaults to 0 if omitted. For CORRELATION ONLY — it is NOT an idempotency key and the server does not dedupe replays. Echoed on any GenericErrorResponse for this send, delivered on the udpNotifications subscription. */
|
|
7434
|
+
sequenceNumber?: InputMaybe<Scalars['Int']['input']>;
|
|
7435
|
+
/** The sender's actor UUID (your own actor's UUID). Must be exactly 32 bytes when encoded as UTF-8. */
|
|
7436
|
+
uuid: Scalars['String']['input'];
|
|
7437
|
+
};
|
|
7152
7438
|
export type RateCardBandInput = {
|
|
7153
7439
|
/** Cents per the row's unitQuantity raw units inside this band: >= 0, at most six decimals, and never more than the band below it. */
|
|
7154
7440
|
priceCents: Scalars['Float']['input'];
|
|
@@ -7945,6 +8231,138 @@ export type TeleportResponse = {
|
|
|
7945
8231
|
/** True when the teleport is authorized/accepted; false otherwise (inspect errorCode for the reason). */
|
|
7946
8232
|
success: Scalars['Boolean']['output'];
|
|
7947
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
|
+
}
|
|
7948
8366
|
export type TransferGridOwnershipInput = {
|
|
7949
8367
|
/** App that contains the grid. */
|
|
7950
8368
|
appId: Scalars['BigInt']['input'];
|
|
@@ -8098,6 +8516,8 @@ export type UpdateAppInput = {
|
|
|
8098
8516
|
metadata?: InputMaybe<Scalars['String']['input']>;
|
|
8099
8517
|
/** New display name (1-256 chars). Omit to leave unchanged. */
|
|
8100
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']>;
|
|
8101
8521
|
/** New lifecycle status; set LIVE to publish, or DRAFT/LIVE to restore an archived app. Omit to leave unchanged. */
|
|
8102
8522
|
status?: InputMaybe<AppStatus>;
|
|
8103
8523
|
/** New visibility (PUBLIC/UNLISTED/PRIVATE). Omit to leave unchanged. */
|
|
@@ -8330,6 +8750,23 @@ export type UserPropertyTokenData = {
|
|
|
8330
8750
|
/** Sum of available + inUse, as a decimal string. */
|
|
8331
8751
|
total: Scalars['String']['output'];
|
|
8332
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
|
+
};
|
|
8333
8770
|
/** A Relay cursor connection over User records. Page with first/after; pass pageInfo.endCursor back as after for the next page. */
|
|
8334
8771
|
export type UsersConnection = {
|
|
8335
8772
|
__typename?: 'UsersConnection';
|