@burdenoff/microfe-housingvista 2026.1001.2 → 2026.1013.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.
@@ -408,6 +408,8 @@ export type Addon = {
408
408
  isActive?: Maybe<Scalars['Boolean']['output']>;
409
409
  /** The name of the addon (e.g., 'Extra Bots', 'Additional Storage'). */
410
410
  name?: Maybe<Scalars['String']['output']>;
411
+ /** Apple App Store / Google Play SKU for this addon. */
412
+ nativeProductId?: Maybe<Scalars['String']['output']>;
411
413
  /** The price of the addon. */
412
414
  price?: Maybe<Scalars['Float']['output']>;
413
415
  /** Historical record of price changes for this addon */
@@ -2921,6 +2923,10 @@ export type ComplianceAuditLogEntry = {
2921
2923
  /** Input for configuring tenant settings */
2922
2924
  export type ConfigureTenantInput = {
2923
2925
  complianceRegion?: InputMaybe<Scalars['String']['input']>;
2926
+ /**
2927
+ * Ignored and never stored. Burdenoff does no white-labelling: every product keeps its own brand.
2928
+ * @deprecated No white-labelling — products keep their own brand. This setting is ignored.
2929
+ */
2924
2930
  customBranding?: InputMaybe<Scalars['JSON']['input']>;
2925
2931
  dataResidency?: InputMaybe<Scalars['String']['input']>;
2926
2932
  features?: InputMaybe<Scalars['JSON']['input']>;
@@ -6470,6 +6476,10 @@ export type GetStoreProductTagsInput = {
6470
6476
  export type GrantAppDelegationInternalInput = {
6471
6477
  /** Client ID of the first-party system app (e.g. burdenoff_integration_core). */
6472
6478
  clientId: Scalars['String']['input'];
6479
+ /** Scopes the delegation must keep for other grants that share it (e.g. the user's other integration connections). A retained scope is kept only while the existing delegation is ACTIVE and already holds it, and only while the app still allows it; otherwise it is dropped, never rejected. A grant therefore never restores or adds a scope beyond the requested scopes. */
6480
+ retainedScopes?: InputMaybe<Array<Scalars['String']['input']>>;
6481
+ /** Workspaces the delegation must keep for other grants that share it. Kept only while the existing delegation is ACTIVE and already covers them: restoring a REVOKED or EXPIRED delegation covers only workspaceIds. Ignored when workspaceIds is empty (unrestricted). */
6482
+ retainedWorkspaceIds?: InputMaybe<Array<Scalars['String']['input']>>;
6473
6483
  /** Scopes to grant — must be a subset of the app's scopes. */
6474
6484
  scopes: Array<Scalars['String']['input']>;
6475
6485
  /** The user granting (and target of) the self-delegation. */
@@ -6479,6 +6489,8 @@ export type GrantAppDelegationInternalInput = {
6479
6489
  };
6480
6490
  export type GrantAppWorkspaceAccessInput = {
6481
6491
  appId: Scalars['ID']['input'];
6492
+ /** Restore a REVOKED authorization only if its revokedReason is exactly this value (one conditional write); otherwise behave as create-only. Lets an automated provisioner undo its own withdrawal but never an operator's revocation. Takes precedence over reactivateRevoked. */
6493
+ reactivateIfRevokedReason?: InputMaybe<Scalars['String']['input']>;
6482
6494
  /** Whether an existing REVOKED authorization may be restored. Defaults to true for explicit administrative grants. Automated provisioning should pass false so an operator revocation remains durable. */
6483
6495
  reactivateRevoked?: InputMaybe<Scalars['Boolean']['input']>;
6484
6496
  /** Optional subset of the app's global scopes. Empty array means the authorization inherits the app's full scope list. */
@@ -7200,6 +7212,8 @@ export type IssueAppAsUserTokenInternalInput = {
7200
7212
  scopes?: InputMaybe<Array<Scalars['String']['input']>>;
7201
7213
  /** The user the app will act on behalf of (must have an active delegation). */
7202
7214
  targetUserId: Scalars['String']['input'];
7215
+ /** Bind the token to this one workspace instead of every workspace the delegation covers. The delegation must cover it. Callers minting for a single workspace (an integration connection) should always pass it. */
7216
+ workspaceId?: InputMaybe<Scalars['String']['input']>;
7203
7217
  };
7204
7218
  export type ItemOrder = {
7205
7219
  __typename?: 'ItemOrder';
@@ -8549,6 +8563,7 @@ export type Mutation = {
8549
8563
  /** Detach media from a tour step */
8550
8564
  detachMediaFromStep: Scalars['Boolean']['output'];
8551
8565
  disableAuthMethod: Scalars['Boolean']['output'];
8566
+ /** Disable every MFA method of the caller. When `code` is given (a current TOTP code, or one of the caller's unused backup codes) it must verify against an enabled method before anything is disabled. */
8552
8567
  disableMFA: Scalars['Boolean']['output'];
8553
8568
  disableMaintenanceMode: MaintenanceModeStatus;
8554
8569
  disableSchedule: ScheduledJob;
@@ -8942,6 +8957,8 @@ export type Mutation = {
8942
8957
  restoreChannel: Channel;
8943
8958
  restoreScheduleVersion: ScheduledJob;
8944
8959
  restoreTemplateVersion: NewsletterTemplate;
8960
+ /** Service-trusted internal REDUCTION of a first-party self-delegation, keyed by the app's client id and the user: used when one of several integration connections that share it is deleted or revoked. It never creates, re-enables or widens a delegation: it returns null when there is none (never granted, or erased), a REVOKED or EXPIRED one unchanged, and otherwise the delegation cut down to the requested scopes and workspaces it already held (REVOKED if none are left). Not blocked by a deactivated app: withdrawing access is always permitted. Gated to internal service / super_admin callers and restricted to first-party system apps. */
8961
+ restrictAppDelegationInternal?: Maybe<AppUserDelegation>;
8945
8962
  /** Public endpoint — no authentication required. Email is normalized (trimmed, lowercased) and validated in the provider. Returns NOT_FOUND when no matching unsubscribed record exists; does not leak which side of the check failed. */
8946
8963
  resubscribe: NewsletterSubscriber;
8947
8964
  /** Resume a paused subscription */
@@ -8973,7 +8990,9 @@ export type Mutation = {
8973
8990
  revokeAPIKey: Scalars['Boolean']['output'];
8974
8991
  /** Revoke all sessions except the current one. Returns the number of sessions that were revoked. */
8975
8992
  revokeAllSessions: RevokeAllSessionsResult;
8976
- /** Revoke an app's access to a workspace. Returns false if the row was already REVOKED or never existed. */
8993
+ /** Service-trusted internal revoke of a first-party self-delegation, keyed by the app's client id and the user — the counterpart of grantAppDelegationInternal, used when the last integration connection that needed it is deleted or revoked. Idempotent: returns true when an ACTIVE delegation was revoked and false when there was none (never granted, already revoked or expired). Gated to internal service / super_admin callers and restricted to first-party system apps. */
8994
+ revokeAppDelegationInternal: Scalars['Boolean']['output'];
8995
+ /** Revoke an app's access to a workspace. Returns false if the row was already REVOKED or never existed. An owner or super_admin revoking an already-REVOKED row replaces the revocation on record (reason, actor, time). */
8977
8996
  revokeAppWorkspaceAccess: Scalars['Boolean']['output'];
8978
8997
  revokeConsent: NewsletterConsent;
8979
8998
  revokeDelegation: Scalars['Boolean']['output'];
@@ -9013,6 +9032,8 @@ export type Mutation = {
9013
9032
  scheduleNotification: ScheduledNotification;
9014
9033
  /** Overwrite the built-in AthleteBridge user-facing tours from the service-owned seed file. */
9015
9034
  seedAtheleteBridgeUserTours: SeedAtheleteBridgeUserToursResult;
9035
+ /** Overwrite the service-owned BigConsole onboarding tours. Repeated calls update the same slugs. */
9036
+ seedBigconsoleUserTours: SeedBigconsoleUserToursResult;
9016
9037
  /** Overwrite the built-in Buildmyiq user-facing dashboard tour from the service-owned seed file. */
9017
9038
  seedBuildmyiqUserTours: SeedBuildmyiqUserToursResult;
9018
9039
  /** Overwrite the built-in CollabKin user-facing dashboard tour from the service-owned seed file. */
@@ -9397,7 +9418,6 @@ export type Mutation = {
9397
9418
  /** M2M: create or update a ShippingAddress for an EXPLICIT user, on behalf of a calling service. Product backends (e.g. Kadaikodi) call this through the INTERNAL gateway so a user's address lives in the canonical store owner rather than a per-product copy. Pass `input.id` to update an existing row (must belong to `input.userId`); omit it to create. Service-actor only. */
9398
9419
  upsertUserShippingAddress: ShippingAddress;
9399
9420
  useCannedResponse: CannedResponse;
9400
- validateApiKey: TokenValidationResponse;
9401
9421
  /** Validate an HMAC signature */
9402
9422
  validateHMACSignature: HmacValidationResult;
9403
9423
  /** Validate a signed cookie */
@@ -10942,6 +10962,10 @@ export type MutationDisableAuthMethodArgs = {
10942
10962
  authType: AuthType;
10943
10963
  };
10944
10964
  /** Root mutation type */
10965
+ export type MutationDisableMfaArgs = {
10966
+ code?: InputMaybe<Scalars['String']['input']>;
10967
+ };
10968
+ /** Root mutation type */
10945
10969
  export type MutationDisableScheduleArgs = {
10946
10970
  id: Scalars['ID']['input'];
10947
10971
  reason?: InputMaybe<Scalars['String']['input']>;
@@ -12041,6 +12065,10 @@ export type MutationRestoreTemplateVersionArgs = {
12041
12065
  version: Scalars['Int']['input'];
12042
12066
  };
12043
12067
  /** Root mutation type */
12068
+ export type MutationRestrictAppDelegationInternalArgs = {
12069
+ input: RestrictAppDelegationInternalInput;
12070
+ };
12071
+ /** Root mutation type */
12044
12072
  export type MutationResubscribeArgs = {
12045
12073
  email: Scalars['String']['input'];
12046
12074
  platformProductId?: InputMaybe<Scalars['String']['input']>;
@@ -12123,6 +12151,10 @@ export type MutationRevokeApiKeyArgs = {
12123
12151
  keyId: Scalars['String']['input'];
12124
12152
  };
12125
12153
  /** Root mutation type */
12154
+ export type MutationRevokeAppDelegationInternalArgs = {
12155
+ input: RevokeAppDelegationInternalInput;
12156
+ };
12157
+ /** Root mutation type */
12126
12158
  export type MutationRevokeAppWorkspaceAccessArgs = {
12127
12159
  input: RevokeAppWorkspaceAccessInput;
12128
12160
  };
@@ -13321,10 +13353,6 @@ export type MutationUseCannedResponseArgs = {
13321
13353
  id: Scalars['ID']['input'];
13322
13354
  };
13323
13355
  /** Root mutation type */
13324
- export type MutationValidateApiKeyArgs = {
13325
- apiKey: Scalars['String']['input'];
13326
- };
13327
- /** Root mutation type */
13328
13356
  export type MutationValidateHmacSignatureArgs = {
13329
13357
  algorithm?: InputMaybe<Scalars['String']['input']>;
13330
13358
  appId: Scalars['ID']['input'];
@@ -15126,6 +15154,8 @@ export type Plan = {
15126
15154
  minSeats?: Maybe<Scalars['Int']['output']>;
15127
15155
  /** The name of the plan (e.g., 'Basic', 'Pro', 'Enterprise'). */
15128
15156
  name?: Maybe<Scalars['String']['output']>;
15157
+ /** Apple App Store / Google Play SKU for this plan. */
15158
+ nativeProductId?: Maybe<Scalars['String']['output']>;
15129
15159
  /** The price of the plan. */
15130
15160
  price?: Maybe<Scalars['Float']['output']>;
15131
15161
  /** Historical record of price changes for this plan */
@@ -20644,6 +20674,17 @@ export type ResourceTypeProductInfo = {
20644
20674
  products: Array<Scalars['String']['output']>;
20645
20675
  resourceType: Scalars['String']['output'];
20646
20676
  };
20677
+ /** Input for the service-trusted internal reduction of a first-party self-delegation. */
20678
+ export type RestrictAppDelegationInternalInput = {
20679
+ /** Client ID of the first-party system app (e.g. burdenoff_integration_core). */
20680
+ clientId: Scalars['String']['input'];
20681
+ /** The most the delegation may keep: it keeps only those of these scopes it already holds (and the app still allows), and is revoked if none are left. */
20682
+ scopes: Array<Scalars['String']['input']>;
20683
+ /** The user whose delegation to the app is reduced. */
20684
+ userId: Scalars['String']['input'];
20685
+ /** The most workspaces the delegation may keep: it keeps only those of these it already covers, and is revoked if none are left. Empty = leave the workspaces as they are. */
20686
+ workspaceIds: Array<Scalars['String']['input']>;
20687
+ };
20647
20688
  export type RetryBillingOrderCallbackResponse = {
20648
20689
  __typename?: 'RetryBillingOrderCallbackResponse';
20649
20690
  error?: Maybe<Scalars['String']['output']>;
@@ -20700,8 +20741,19 @@ export type RevokeAllSessionsResult = {
20700
20741
  revokedCount: Scalars['Int']['output'];
20701
20742
  success: Scalars['Boolean']['output'];
20702
20743
  };
20744
+ /** Input for the service-trusted internal revoke of a first-party self-delegation. */
20745
+ export type RevokeAppDelegationInternalInput = {
20746
+ /** Client ID of the first-party system app (e.g. burdenoff_integration_core). */
20747
+ clientId: Scalars['String']['input'];
20748
+ /** Recorded on the delegation and in the audit log. */
20749
+ reason?: InputMaybe<Scalars['String']['input']>;
20750
+ /** The user whose delegation to the app is revoked. */
20751
+ userId: Scalars['String']['input'];
20752
+ };
20703
20753
  export type RevokeAppWorkspaceAccessInput = {
20704
20754
  appId: Scalars['ID']['input'];
20755
+ /** Withdraw only the calling actor's own grant. The authorization is revoked (true) only when the caller is its sole grantor; when others granted it too, only the caller's share is released and it stays ACTIVE (false); one the caller never granted is left untouched (false). An automated provisioner withdrawing its own grant sets this, so it never revokes access an owner or an app installation gave the app, whichever granted first. */
20756
+ onlyIfGrantedByCaller?: InputMaybe<Scalars['Boolean']['input']>;
20705
20757
  reason?: InputMaybe<Scalars['String']['input']>;
20706
20758
  workspaceId: Scalars['ID']['input'];
20707
20759
  };
@@ -21238,6 +21290,15 @@ export type SeedAtheleteBridgeUserToursResult = {
21238
21290
  updatedCount: Scalars['Int']['output'];
21239
21291
  workspaceId: Scalars['String']['output'];
21240
21292
  };
21293
+ export type SeedBigconsoleUserToursResult = {
21294
+ __typename?: 'SeedBigconsoleUserToursResult';
21295
+ createdCount: Scalars['Int']['output'];
21296
+ productId: Scalars['String']['output'];
21297
+ totalCount: Scalars['Int']['output'];
21298
+ tours: Array<SeededUserTourResult>;
21299
+ updatedCount: Scalars['Int']['output'];
21300
+ workspaceId: Scalars['String']['output'];
21301
+ };
21241
21302
  export type SeedBuildmyiqUserToursResult = {
21242
21303
  __typename?: 'SeedBuildmyiqUserToursResult';
21243
21304
  createdCount: Scalars['Int']['output'];
@@ -23328,10 +23389,14 @@ export type Tenant = {
23328
23389
  /** Workspaces belonging to this tenant */
23329
23390
  workspaces: Array<Workspace>;
23330
23391
  };
23331
- /** Tenant configuration for regional settings, branding, and features */
23392
+ /** Tenant configuration for regional settings, data residency, and features */
23332
23393
  export type TenantConfig = {
23333
23394
  __typename?: 'TenantConfig';
23334
23395
  complianceRegion?: Maybe<Scalars['String']['output']>;
23396
+ /**
23397
+ * Always null. Burdenoff does no white-labelling: every product keeps its own brand, so tenants cannot set a custom logo, colour or favicon.
23398
+ * @deprecated No white-labelling — products keep their own brand. This setting is ignored.
23399
+ */
23335
23400
  customBranding?: Maybe<Scalars['JSON']['output']>;
23336
23401
  dataResidency?: Maybe<Scalars['String']['output']>;
23337
23402
  features?: Maybe<Scalars['JSON']['output']>;