@itwin/core-backend 5.14.0-dev.3 → 5.14.0-dev.4

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.
Files changed (59) hide show
  1. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  2. package/lib/cjs/BriefcaseManager.js +11 -5
  3. package/lib/cjs/BriefcaseManager.js.map +1 -1
  4. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  5. package/lib/cjs/CloudSqlite.js +9 -2
  6. package/lib/cjs/CloudSqlite.js.map +1 -1
  7. package/lib/cjs/ECDb.d.ts.map +1 -1
  8. package/lib/cjs/ECDb.js +1 -0
  9. package/lib/cjs/ECDb.js.map +1 -1
  10. package/lib/cjs/IModelDb.d.ts +42 -7
  11. package/lib/cjs/IModelDb.d.ts.map +1 -1
  12. package/lib/cjs/IModelDb.js +175 -74
  13. package/lib/cjs/IModelDb.js.map +1 -1
  14. package/lib/cjs/SchemaSync.d.ts +126 -18
  15. package/lib/cjs/SchemaSync.d.ts.map +1 -1
  16. package/lib/cjs/SchemaSync.js +303 -81
  17. package/lib/cjs/SchemaSync.js.map +1 -1
  18. package/lib/cjs/TxnManager.d.ts.map +1 -1
  19. package/lib/cjs/TxnManager.js +2 -5
  20. package/lib/cjs/TxnManager.js.map +1 -1
  21. package/lib/cjs/internal/SchemaSyncReservations.d.ts.map +1 -1
  22. package/lib/cjs/internal/SchemaSyncReservations.js +13 -3
  23. package/lib/cjs/internal/SchemaSyncReservations.js.map +1 -1
  24. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  25. package/lib/esm/BriefcaseManager.js +11 -5
  26. package/lib/esm/BriefcaseManager.js.map +1 -1
  27. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  28. package/lib/esm/CloudSqlite.js +10 -3
  29. package/lib/esm/CloudSqlite.js.map +1 -1
  30. package/lib/esm/ECDb.d.ts.map +1 -1
  31. package/lib/esm/ECDb.js +1 -0
  32. package/lib/esm/ECDb.js.map +1 -1
  33. package/lib/esm/IModelDb.d.ts +42 -7
  34. package/lib/esm/IModelDb.d.ts.map +1 -1
  35. package/lib/esm/IModelDb.js +175 -74
  36. package/lib/esm/IModelDb.js.map +1 -1
  37. package/lib/esm/SchemaSync.d.ts +126 -18
  38. package/lib/esm/SchemaSync.d.ts.map +1 -1
  39. package/lib/esm/SchemaSync.js +304 -82
  40. package/lib/esm/SchemaSync.js.map +1 -1
  41. package/lib/esm/TxnManager.d.ts.map +1 -1
  42. package/lib/esm/TxnManager.js +2 -5
  43. package/lib/esm/TxnManager.js.map +1 -1
  44. package/lib/esm/internal/SchemaSyncReservations.d.ts.map +1 -1
  45. package/lib/esm/internal/SchemaSyncReservations.js +13 -3
  46. package/lib/esm/internal/SchemaSyncReservations.js.map +1 -1
  47. package/lib/esm/test/hubaccess/Rebase.test.js +3 -1
  48. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  49. package/lib/esm/test/hubaccess/SemanticRebase.test.js +29 -28
  50. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  51. package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.d.ts +3 -0
  52. package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.d.ts.map +1 -0
  53. package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.js +15 -0
  54. package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.js.map +1 -0
  55. package/lib/esm/test/standalone/SchemaSyncDb.test.js +5 -25
  56. package/lib/esm/test/standalone/SchemaSyncDb.test.js.map +1 -1
  57. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js +1 -0
  58. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js.map +1 -1
  59. package/package.json +14 -14
@@ -1,8 +1,9 @@
1
1
  import { CloudSqlite } from "./CloudSqlite";
2
2
  import { SQLiteDb, VersionedSqliteDb } from "./SQLiteDb";
3
- import { IModelDb } from "./IModelDb";
3
+ import { BriefcaseDb, IModelDb } from "./IModelDb";
4
4
  import { GuidString, Id64String, OpenMode } from "@itwin/core-bentley";
5
5
  import { Code, LocalFileName } from "@itwin/core-common";
6
+ import type { BlobContainer } from "./BlobContainerService";
6
7
  /** @internal */
7
8
  export declare namespace SchemaSync {
8
9
  /** Identifies an element to be reserved in a `SchemaSyncDb`. @internal */
@@ -21,13 +22,13 @@ export declare namespace SchemaSync {
21
22
  findReservedElement(federationGuid: GuidString): ReservedElement | undefined;
22
23
  }
23
24
  interface WriteMethods {
24
- /** Reserve the specified elements in the `SchemaSyncDb`. Throws if any of the requested reservations conflict with existing reservations. */
25
+ /** Reserve the specified elements in the `SchemaSyncDb`. Throws if any requested reservation conflicts with an existing reservation. */
25
26
  reserveElements(identities: ProposedElementReservation[]): Promise<void>;
26
27
  }
27
28
  /** A CloudSqlite database for synchronizing schema changes across briefcases. */
28
29
  class SchemaSyncDb extends VersionedSqliteDb implements ReadMethods, WriteMethods {
29
30
  private _supportsReservations?;
30
- readonly myVersion = "4.1.0";
31
+ readonly myVersion = "5.0.0";
31
32
  protected createDDL(): void;
32
33
  openDb(dbName: string, openMode: OpenMode | SQLiteDb.OpenParams, container?: CloudSqlite.CloudContainer): void;
33
34
  private ensureReservedElementsTable;
@@ -38,28 +39,133 @@ export declare namespace SchemaSync {
38
39
  private getNextReservedElementLocalId;
39
40
  private setNextReservedElementLocalId;
40
41
  }
41
- const setTestCache: (iModel: IModelDb, cacheName?: string) => void;
42
- const getCloudAccess: (arg: IModelDb | {
42
+ /** The `containerType` recorded on a BlobContainer that holds an iModel's `SchemaSyncDb`. */
43
+ const containerType = "schema-sync";
44
+ function setTestCache(iModel: IModelDb, cacheName?: string): void;
45
+ /** Either an open iModel or the name of a closed briefcase file. Every local read below accepts both, so
46
+ * a caller that has only a file name does not have to open a `BriefcaseDb` to ask a question about it.
47
+ */
48
+ type IModelOrFileName = IModelDb | {
43
49
  readonly fileName: LocalFileName;
44
- }) => Promise<CloudAccess>;
45
- const withLockedAccess: (iModel: IModelDb | {
46
- readonly fileName: LocalFileName;
47
- }, args: {
50
+ };
51
+ /** Whether this iModel's ECSchemas are governed by a `SchemaSyncDb`.
52
+ *
53
+ * This is the single question every schema operation branches on. It reads one `be_Prop` row written when
54
+ * schema sync was enabled and carried to every other briefcase by that changeset - no cloud access, and it
55
+ * works on a readonly briefcase, a checkpoint, or a closed file.
56
+ * @note This says nothing about whether the container is reachable, or even named. Use
57
+ * [[queryContainerProps]] for that. The two are separate on purpose: a file that says it is governed by a
58
+ * sync db must never fall back to importing schemas on its own, whatever state the container is in.
59
+ */
60
+ function isEnabled(arg: IModelOrFileName): boolean;
61
+ /** The container holding this iModel's `SchemaSyncDb`, or `undefined` if schema sync was never enabled.
62
+ *
63
+ * Local read of the same `be_Prop` file property that [[initializeForIModel]] wrote. Requesting an access
64
+ * token for the container is a separate, asynchronous step.
65
+ */
66
+ function queryContainerProps(arg: IModelOrFileName): CloudSqlite.ContainerProps | undefined;
67
+ function getCloudAccess(arg: IModelOrFileName): Promise<CloudAccess>;
68
+ /** Release an access obtained through [[getCloudAccess]]. */
69
+ function releaseCloudAccess(access: CloudAccess): void;
70
+ /** Arguments for [[withLockedAccess]]. */
71
+ interface WithLockedAccessArgs {
48
72
  operationName: string;
49
73
  openMode?: OpenMode;
50
74
  user?: string;
51
- }, operation: (access: CloudAccess) => Promise<void>) => Promise<void>;
52
- const withReadonlyAccess: (iModel: IModelDb | {
53
- readonly fileName: LocalFileName;
54
- }, operation: (access: CloudAccess) => Promise<void>) => Promise<void>;
55
- const isEnabled: (iModel: IModelDb) => boolean;
56
- /** Synchronize local briefcase schemas with cloud container */
57
- const pull: (iModel: IModelDb) => Promise<void>;
58
- const initializeForIModel: (arg: {
75
+ }
76
+ function withLockedAccess(iModel: IModelOrFileName, args: WithLockedAccessArgs, operation: (access: CloudAccess) => Promise<void>): Promise<void>;
77
+ /** Build the tables and indexes the briefcase's `ec_` rows describe. A merged schema changeset carries
78
+ * those rows but no DDL, so the physical columns are missing until this runs. Needs no cloud access.
79
+ */
80
+ function updateDbSchema(iModel: IModelDb): void;
81
+ /** Whether a failed [[IModelDb.importSchemas]] can be retried through the upgrade path.
82
+ *
83
+ * The update tier refuses two kinds of change: one that has to move data between columns, and one
84
+ * that destroys instances or property values. They arrive as different statuses because they are
85
+ * different changes, but they mean one thing to a caller - this needs
86
+ * [[BriefcaseDb.upgradeSchemas]], which takes the exclusive schema lock.
87
+ *
88
+ * The retry is the app's decision, not the platform's: taking that lock disturbs everyone else, so
89
+ * only the app knows whether to do it now, schedule it, or tell the user.
90
+ * ```ts
91
+ * try {
92
+ * await db.importSchemas(files);
93
+ * } catch (e) {
94
+ * if (!SchemaSync.requiresUpgrade(e)) throw e;
95
+ * await db.upgradeSchemas(files, { description: "..." });
96
+ * }
97
+ * ```
98
+ * @internal
99
+ */
100
+ function requiresUpgrade(error: unknown): boolean;
101
+ /** Arguments for [[createContainerForIModel]]. */
102
+ interface CreateContainerForIModelArgs {
103
+ iModel: IModelDb;
104
+ label?: string;
105
+ description?: string;
106
+ }
107
+ /** Create a cloud container to hold this iModel's `SchemaSyncDb`, and initialize it as empty.
108
+ *
109
+ * The container is scoped to the iModel, so the service deletes it when the iModel is deleted. Pass the
110
+ * returned props to [[initializeForIModel]] - the two calls together are what enables schema sync on an
111
+ * iModel that was created without it.
112
+ * @note The current user must be authorized to create containers for the iTwin.
113
+ */
114
+ function createContainerForIModel(arg: CreateContainerForIModelArgs): Promise<CloudSqlite.ContainerProps>;
115
+ /** Arguments for [[initializeForIModel]]. */
116
+ interface InitializeForIModelArgs {
59
117
  iModel: IModelDb;
60
118
  containerProps: CloudSqlite.ContainerProps;
119
+ /** Replace the container already recorded on this iModel instead of failing. */
61
120
  overrideContainer?: boolean;
62
- }) => Promise<void>;
121
+ }
122
+ /** Enable schema sync for an iModel, seeding the container from this briefcase.
123
+ * @note Takes the exclusive schema lock, refuses local changes, and pulls the briefcase to the tip before writing the container.
124
+ * If this operation fails after acquiring the schema lock, it leaves the lock held.
125
+ */
126
+ function initializeForIModel(arg: InitializeForIModelArgs): Promise<void>;
127
+ /** The part of a SchemaSyncDb to restore from an authoritative briefcase. @alpha */
128
+ type RepairScope = "schemaMetadata" | "schemaMetadataAndProfile";
129
+ /** Arguments for [[repairForIModel]]. @alpha */
130
+ interface RepairForIModelArgs {
131
+ /** A clean SchemaSync-enabled briefcase at the tip of the iModel timeline. */
132
+ iModel: BriefcaseDb;
133
+ /** Include the schema-owned EC and BeSQLite profile table definitions. */
134
+ scope?: RepairScope;
135
+ }
136
+ /** Restore the schema-owned portion of the SchemaSyncDb from a briefcase at the tip of the timeline.
137
+ *
138
+ * This operation takes the exclusive schema lock and refuses to pull or modify the briefcase. Element
139
+ * reservations and all other target-only state in the SchemaSyncDb are preserved.
140
+ * @alpha
141
+ */
142
+ function repairForIModel(arg: RepairForIModelArgs): Promise<void>;
143
+ /** Arguments for [[enableForIModel]]. */
144
+ interface EnableForIModelArgs {
145
+ iModel: IModelDb;
146
+ /** An existing container to use. When omitted one is created for this iModel. */
147
+ containerProps?: CloudSqlite.ContainerProps;
148
+ /** Replace the container already recorded on this iModel instead of failing. */
149
+ overrideContainer?: boolean;
150
+ label?: string;
151
+ description?: string;
152
+ }
153
+ /** Turn schema sync on for an iModel: create the container if needed, record it, and seed it.
154
+ *
155
+ * The single call callers should use. [[createContainerForIModel]] and [[initializeForIModel]] have
156
+ * to happen in this order, and an iModel left between the two is one that names a container nothing
157
+ * has seeded.
158
+ * @returns the container props recorded on the iModel.
159
+ * @note Takes the exclusive schema lock and pushes, same protocol as [[BriefcaseDb.upgradeSchemas]] -
160
+ * every operation that changes how a file is governed uses it. If this operation fails after acquiring the schema lock,
161
+ * it leaves the lock held.
162
+ */
163
+ function enableForIModel(arg: EnableForIModelArgs): Promise<CloudSqlite.ContainerProps>;
164
+ /** Arguments for [[CloudAccess.createNewContainer]]. */
165
+ interface CreateNewContainerProps {
166
+ scope: BlobContainer.Scope;
167
+ metadata: Omit<BlobContainer.Metadata, "containerType">;
168
+ }
63
169
  /** Provides access to a cloud-based `SchemaSyncDb` to hold ECSchemas. */
64
170
  class CloudAccess extends CloudSqlite.DbAccess<SchemaSyncDb, ReadMethods, WriteMethods> {
65
171
  constructor(props: CloudSqlite.ContainerAccessProps);
@@ -70,6 +176,8 @@ export declare namespace SchemaSync {
70
176
  * @note this deletes any existing content in the container.
71
177
  */
72
178
  static initializeDb(props: CloudSqlite.ContainerProps): Promise<void>;
179
+ /** Create and initialize a new `schema-sync` BlobContainer to hold a `SchemaSyncDb`. */
180
+ static createNewContainer(args: CreateNewContainerProps): Promise<CloudSqlite.ContainerProps>;
73
181
  }
74
182
  }
75
183
  //# sourceMappingURL=SchemaSync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaSync.d.ts","sourceRoot":"","sources":["../../src/SchemaSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaSync.d.ts","sourceRoot":"","sources":["../../src/SchemaSync.ts"],"names":[],"mappings":"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"}