laranex-schema-viewer-ui 0.2.0 → 0.3.0

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 (269) hide show
  1. package/NOTICE +11 -0
  2. package/README.md +15 -2
  3. package/contract/check.mjs +7 -3
  4. package/contract/conformance/comparison/column-fields-same-driver.json +387 -0
  5. package/contract/conformance/comparison/combined-declared-only.json +275 -0
  6. package/contract/conformance/comparison/constraints.json +356 -0
  7. package/contract/conformance/comparison/cross-driver-types.json +453 -0
  8. package/contract/conformance/comparison/foreign-key-matching.json +615 -0
  9. package/contract/conformance/comparison/incomplete-coverage.json +214 -0
  10. package/contract/conformance/comparison/incomplete-limit.json +249 -0
  11. package/contract/conformance/comparison/index-matching.json +588 -0
  12. package/contract/conformance/comparison/primary-key.json +443 -0
  13. package/contract/conformance/comparison/referential-actions-mysql.json +321 -0
  14. package/contract/conformance/comparison/severity-overrides.json +283 -0
  15. package/contract/conformance/comparison/tables-missing-extra.json +306 -0
  16. package/contract/conformance/comparison/tenant-schemas-equal.json +329 -0
  17. package/contract/conformance/comparison/unnamed-duplicates.json +268 -0
  18. package/contract/conformance/comparison-diagnostics/both-sides-and-omitted.json +330 -0
  19. package/contract/conformance/comparison-diagnostics/complete.json +390 -0
  20. package/contract/conformance/comparison-diagnostics/coverage.json +405 -0
  21. package/contract/conformance/comparison-diagnostics/limit-zero.json +335 -0
  22. package/contract/conformance/comparison-diagnostics/omitted.json +370 -0
  23. package/contract/conformance/comparison-diagnostics/tenant-schema-label.json +162 -0
  24. package/contract/conformance/coverage-gaps/combined-document.json +71 -0
  25. package/contract/conformance/coverage-gaps/complete.json +53 -0
  26. package/contract/conformance/coverage-gaps/coverage-unknown.json +33 -0
  27. package/contract/conformance/coverage-gaps/declared-document.json +56 -0
  28. package/contract/conformance/coverage-gaps/default-schema-not-read.json +57 -0
  29. package/contract/conformance/coverage-gaps/default-schema-unknown.json +52 -0
  30. package/contract/conformance/coverage-gaps/feature-states.json +65 -0
  31. package/contract/conformance/coverage-gaps/features-then-schema.json +67 -0
  32. package/contract/conformance/coverage-gaps/not-applicable.json +50 -0
  33. package/contract/conformance/coverage-gaps/schema-not-read.json +58 -0
  34. package/contract/conformance/coverage-gaps/schemas-unknown.json +50 -0
  35. package/contract/conformance/gate/comparison-drift.json +346 -0
  36. package/contract/conformance/gate/diagnostics-only.json +257 -0
  37. package/contract/conformance/gate/extraction-warning-only.json +176 -0
  38. package/contract/conformance/gate/failed-inspection.json +183 -0
  39. package/contract/conformance/gate/incomplete-comparison.json +310 -0
  40. package/contract/conformance/gate/incomplete-coverage.json +355 -0
  41. package/contract/conformance/gate/incomplete-required-coverage.json +233 -0
  42. package/contract/conformance/gate/invalid-document.json +52 -0
  43. package/contract/conformance/gate/migration-only.json +650 -0
  44. package/contract/conformance/gate/migration-unknown.json +315 -0
  45. package/contract/conformance/gate/newer-minor.json +352 -0
  46. package/contract/conformance/gate/not-a-document.json +37 -0
  47. package/contract/conformance/gate/partial-coverage.json +242 -0
  48. package/contract/conformance/gate/precedence.json +431 -0
  49. package/contract/conformance/gate/requested-missing.json +417 -0
  50. package/contract/conformance/gate/requested-none.json +245 -0
  51. package/contract/conformance/gate/requested-wildcard-empty.json +189 -0
  52. package/contract/conformance/gate/requested-wildcard.json +387 -0
  53. package/contract/conformance/gate/threshold-below-severity.json +312 -0
  54. package/contract/conformance/gate/threshold-likely-at-certainty.json +312 -0
  55. package/contract/conformance/gate/threshold-likely-below-certainty.json +312 -0
  56. package/contract/conformance/gate/unsupported-version.json +269 -0
  57. package/contract/conformance/gate/zero-comparisons.json +242 -0
  58. package/contract/conformance/graph/composite-unordered-pairs.json +1 -1
  59. package/contract/conformance/graph/cross-connection-foreign-key.json +1 -1
  60. package/contract/conformance/graph/cross-connection-relationship.json +1 -1
  61. package/contract/conformance/graph/duplicate-foreign-keys.json +1 -1
  62. package/contract/conformance/graph/duplicate-table-names.json +1 -1
  63. package/contract/conformance/graph/foreign-key-and-relationships.json +1 -1
  64. package/contract/conformance/graph/foreign-key-only.json +1 -1
  65. package/contract/conformance/graph/link-note.json +1 -1
  66. package/contract/conformance/graph/multiple-between-tables.json +1 -1
  67. package/contract/conformance/graph/pivot.json +1 -1
  68. package/contract/conformance/graph/polymorphic.json +1 -1
  69. package/contract/conformance/graph/relationship-only.json +1 -1
  70. package/contract/conformance/graph/self-reference.json +1 -1
  71. package/contract/conformance/graph/through.json +1 -1
  72. package/contract/conformance/graph/unresolved-endpoint.json +1 -1
  73. package/contract/conformance/inference/association-table-without-key.json +283 -0
  74. package/contract/conformance/inference/association-table.json +314 -0
  75. package/contract/conformance/inference/composite-foreign-key.json +295 -0
  76. package/contract/conformance/inference/covered-by-relationship.json +224 -0
  77. package/contract/conformance/inference/many-to-one.json +223 -0
  78. package/contract/conformance/inference/multiple-foreign-keys.json +318 -0
  79. package/contract/conformance/inference/multiple-models.json +241 -0
  80. package/contract/conformance/inference/one-to-one-unique-constraint.json +241 -0
  81. package/contract/conformance/inference/one-to-one-unique-index.json +423 -0
  82. package/contract/conformance/inference/self-reference.json +169 -0
  83. package/contract/conformance/inference/unconfirmed-foreign-key.json +223 -0
  84. package/contract/conformance/inference/unmapped-tables.json +273 -0
  85. package/contract/conformance/migrations/behind.json +64 -0
  86. package/contract/conformance/migrations/diverged.json +62 -0
  87. package/contract/conformance/migrations/history-unavailable.json +15 -0
  88. package/contract/conformance/migrations/merge-behind.json +80 -0
  89. package/contract/conformance/migrations/missing-parent-recorded.json +55 -0
  90. package/contract/conformance/migrations/multiple-heads-behind.json +68 -0
  91. package/contract/conformance/migrations/multiple-heads-up-to-date.json +67 -0
  92. package/contract/conformance/migrations/partial-history-behind.json +55 -0
  93. package/contract/conformance/migrations/partial-history-missing-pending.json +69 -0
  94. package/contract/conformance/migrations/uninitialized-without-history.json +13 -0
  95. package/contract/conformance/migrations/uninitialized.json +63 -0
  96. package/contract/conformance/migrations/unknown-revision.json +64 -0
  97. package/contract/conformance/migrations/up-to-date.json +61 -0
  98. package/contract/conformance/migrations/version-table-unreadable.json +59 -0
  99. package/contract/conformance/overrides/empty.json +9 -0
  100. package/contract/conformance/overrides/every-field.json +262 -0
  101. package/contract/conformance/overrides/field-of-another-type.json +32 -0
  102. package/contract/conformance/overrides/field-on-missing-or-extra.json +25 -0
  103. package/contract/conformance/overrides/malformed.json +37 -0
  104. package/contract/conformance/overrides/not-an-array.json +15 -0
  105. package/contract/conformance/overrides/repeated.json +41 -0
  106. package/contract/conformance/overrides/unknown-field.json +18 -0
  107. package/contract/conformance/overrides/unknown-values.json +32 -0
  108. package/contract/conformance/requests/duplicates.json +271 -0
  109. package/contract/conformance/requests/explicit-over-wildcard.json +212 -0
  110. package/contract/conformance/requests/explicit-pairs.json +192 -0
  111. package/contract/conformance/requests/no-requests.json +130 -0
  112. package/contract/conformance/requests/ordering.json +271 -0
  113. package/contract/conformance/requests/unknown-connection.json +218 -0
  114. package/contract/conformance/requests/wildcard-baseline-is-a-name.json +162 -0
  115. package/contract/conformance/requests/wildcard-declared-coverage.json +82 -0
  116. package/contract/conformance/requests/wildcard-default-schema.json +202 -0
  117. package/contract/conformance/requests/wildcard-no-match.json +180 -0
  118. package/contract/conformance/requests/wildcard-no-schemas.json +180 -0
  119. package/contract/conformance/requests/wildcard-other-connection.json +222 -0
  120. package/contract/conformance/requests/wildcard-tenants.json +202 -0
  121. package/contract/conformance/store/add-to-empty.json +596 -0
  122. package/contract/conformance/store/complete-drops-diagnostic.json +516 -0
  123. package/contract/conformance/store/idempotent.json +701 -0
  124. package/contract/conformance/store/replace.json +639 -0
  125. package/contract/fixtures/gate/invalid/checked-comparisons-unsorted.json +265 -0
  126. package/contract/fixtures/gate/invalid/comparison-finding-kind.json +264 -0
  127. package/contract/fixtures/gate/invalid/counts-mismatch.json +264 -0
  128. package/contract/fixtures/gate/invalid/exit-code-out-of-range.json +84 -0
  129. package/contract/fixtures/gate/invalid/finding-wrong-id.json +264 -0
  130. package/contract/fixtures/gate/invalid/findings-unsorted.json +264 -0
  131. package/contract/fixtures/gate/invalid/incomplete-reported-as-drift.json +84 -0
  132. package/contract/fixtures/gate/invalid/invalid-document-with-findings.json +34 -0
  133. package/contract/fixtures/gate/invalid/migration-finding-severity.json +264 -0
  134. package/contract/fixtures/gate/invalid/passed-flag-mismatch.json +264 -0
  135. package/contract/fixtures/gate/invalid/passed-with-qualifying-findings.json +264 -0
  136. package/contract/fixtures/gate/invalid/requested-unsorted.json +285 -0
  137. package/contract/fixtures/gate/invalid/unknown-error-kind.json +84 -0
  138. package/contract/fixtures/gate/valid/drift.json +258 -0
  139. package/contract/fixtures/gate/valid/incomplete.json +78 -0
  140. package/contract/fixtures/gate/valid/invalid.json +26 -0
  141. package/contract/fixtures/gate/valid/migrations.json +102 -0
  142. package/contract/fixtures/gate/valid/passed.json +58 -0
  143. package/contract/fixtures/gate/valid/requested.json +269 -0
  144. package/contract/fixtures/invalid/backs-check-constraint.json +5 -53
  145. package/contract/fixtures/invalid/column-subject-without-columns.json +642 -0
  146. package/contract/fixtures/invalid/comparison-omitted-but-complete.json +2232 -0
  147. package/contract/fixtures/invalid/comparison-same-scope.json +2749 -0
  148. package/contract/fixtures/invalid/comparison-summary-mismatch.json +2749 -0
  149. package/contract/fixtures/invalid/comparison-unknown-connection.json +2749 -0
  150. package/contract/fixtures/invalid/comparison-wrong-id.json +2749 -0
  151. package/contract/fixtures/invalid/coverage-claims-complete.json +12 -17
  152. package/contract/fixtures/invalid/coverage-for-wrong-source.json +4 -32
  153. package/contract/fixtures/invalid/diagnostic-unknown-subject.json +12 -17
  154. package/contract/fixtures/invalid/diagnostic-wrong-id.json +644 -0
  155. package/contract/fixtures/invalid/difference-changed-without-fields.json +2743 -0
  156. package/contract/fixtures/invalid/difference-key-names-schema.json +2749 -0
  157. package/contract/fixtures/invalid/difference-key-unknown-column.json +2749 -0
  158. package/contract/fixtures/invalid/difference-missing-with-target.json +2753 -0
  159. package/contract/fixtures/invalid/difference-side-outside-scope.json +2749 -0
  160. package/contract/fixtures/invalid/difference-side-wrong-entity.json +2749 -0
  161. package/contract/fixtures/invalid/difference-wrong-id.json +2749 -0
  162. package/contract/fixtures/invalid/differences-unsorted.json +2749 -0
  163. package/contract/fixtures/invalid/drift-without-both-sources.json +12 -17
  164. package/contract/fixtures/invalid/{index-columns-out-of-order.json → driver-alias.json} +6 -54
  165. package/contract/fixtures/invalid/duplicate-ids.json +5 -29
  166. package/contract/fixtures/invalid/foreign-key-across-connections.json +8 -26
  167. package/contract/fixtures/invalid/foreign-key-column-counts.json +5 -11
  168. package/contract/fixtures/invalid/foreign-key-unknown-target.json +5 -53
  169. package/contract/fixtures/invalid/index-part-column-and-expression.json +5 -53
  170. package/contract/fixtures/invalid/inferred-covered-foreign-key.json +2176 -0
  171. package/contract/fixtures/invalid/inferred-kind-mismatch.json +2191 -0
  172. package/contract/fixtures/invalid/inferred-model-not-mapping-table.json +2191 -0
  173. package/contract/fixtures/invalid/inferred-unknown-foreign-key.json +2191 -0
  174. package/contract/fixtures/invalid/inferred-wrong-id.json +2191 -0
  175. package/contract/fixtures/invalid/inferred-wrong-links.json +2191 -0
  176. package/contract/fixtures/invalid/link-state-mismatch.json +44 -97
  177. package/contract/fixtures/invalid/migration-coverage-wrong-table.json +1699 -0
  178. package/contract/fixtures/invalid/migration-revisions-without-version-table.json +1699 -0
  179. package/contract/fixtures/invalid/migration-unknown-coverage-certain.json +1699 -0
  180. package/contract/fixtures/invalid/migration-unlisted-unknown-revision.json +1697 -0
  181. package/contract/fixtures/invalid/migration-version-table-outside-scope.json +1699 -0
  182. package/contract/fixtures/invalid/migration-wrong-heads.json +1698 -0
  183. package/contract/fixtures/invalid/migration-wrong-id.json +1699 -0
  184. package/contract/fixtures/invalid/migration-wrong-missing.json +1697 -0
  185. package/contract/fixtures/invalid/migration-wrong-status.json +1695 -0
  186. package/contract/fixtures/invalid/missing-field.json +5 -15
  187. package/contract/fixtures/invalid/pivot-unknown-column.json +44 -97
  188. package/contract/fixtures/invalid/predicate-without-partial.json +5 -15
  189. package/contract/fixtures/invalid/primary-index-not-unique.json +6 -54
  190. package/contract/fixtures/invalid/primary-index-other-columns.json +811 -0
  191. package/contract/fixtures/invalid/provenance-outside-source.json +5 -15
  192. package/contract/fixtures/invalid/related-model-missing.json +12 -17
  193. package/contract/fixtures/invalid/strict-other-minor.json +301 -0
  194. package/contract/fixtures/invalid/unknown-property-strict.json +6 -16
  195. package/contract/fixtures/invalid/unsupported-major.json +7 -17
  196. package/contract/fixtures/invalid/wrong-format.json +5 -15
  197. package/contract/fixtures/valid/combined-drift.json +12 -17
  198. package/contract/fixtures/valid/combined-eloquent.json +44 -97
  199. package/contract/fixtures/valid/combined-multi-connection.json +8 -26
  200. package/contract/fixtures/valid/comparison-incomplete.json +2225 -0
  201. package/contract/fixtures/valid/comparison-multi-connection.json +889 -0
  202. package/contract/fixtures/valid/comparison-schema-named-tables.json +381 -0
  203. package/contract/fixtures/valid/comparison-tenant-schemas.json +2742 -0
  204. package/contract/fixtures/valid/database-mysql-indexes.json +4 -32
  205. package/contract/fixtures/valid/database-postgresql-indexes.json +5 -53
  206. package/contract/fixtures/valid/database-sqlite-indexes.json +5 -15
  207. package/contract/fixtures/valid/declared-multi-connection.json +4 -1
  208. package/contract/fixtures/valid/declared-sqlalchemy.json +5 -11
  209. package/contract/fixtures/valid/inferred-associations.json +2184 -0
  210. package/contract/fixtures/valid/migrations-alembic.json +1692 -0
  211. package/contract/gate-report.schema.json +242 -0
  212. package/contract/schema.json +636 -18
  213. package/dist/lib/contract-C2tN-NIP.js +409 -0
  214. package/dist/lib/contract-C2tN-NIP.js.map +1 -0
  215. package/dist/lib/contract.js +3 -1
  216. package/dist/lib/export-L1rzMCoW.js +651 -0
  217. package/dist/lib/export-L1rzMCoW.js.map +1 -0
  218. package/dist/lib/export.js +1 -0
  219. package/dist/lib/index.js +4383 -1831
  220. package/dist/lib/index.js.map +1 -1
  221. package/dist/lib/styles.css +1 -1
  222. package/dist/lib/validate-BF7eATfB.js +1781 -0
  223. package/dist/lib/validate-BF7eATfB.js.map +1 -0
  224. package/dist/types/contract/comparison.d.ts +65 -0
  225. package/dist/types/contract/document.d.ts +2 -2
  226. package/dist/types/contract/gate.d.ts +63 -0
  227. package/dist/types/contract/ids.d.ts +10 -0
  228. package/dist/types/contract/index.d.ts +5 -0
  229. package/dist/types/contract/inference.d.ts +10 -0
  230. package/dist/types/contract/migration.d.ts +8 -0
  231. package/dist/types/contract/serialize.d.ts +1 -0
  232. package/dist/types/contract/types.d.ts +122 -5
  233. package/dist/types/export/common.d.ts +44 -0
  234. package/dist/types/export/dbml.d.ts +3 -0
  235. package/dist/types/export/index.d.ts +10 -0
  236. package/dist/types/export/json.d.ts +7 -0
  237. package/dist/types/export/markdown.d.ts +4 -0
  238. package/dist/types/export/mermaid.d.ts +4 -0
  239. package/dist/types/export/types.d.ts +28 -0
  240. package/dist/types/index.d.ts +1 -0
  241. package/dist/types/viewer/Browse.d.ts +6 -2
  242. package/dist/types/viewer/Compare.d.ts +39 -0
  243. package/dist/types/viewer/Details.d.ts +40 -7
  244. package/dist/types/viewer/DownloadDialog.d.ts +16 -0
  245. package/dist/types/viewer/Inferred.d.ts +20 -0
  246. package/dist/types/viewer/Migrations.d.ts +14 -0
  247. package/dist/types/viewer/SchemaEdge.d.ts +3 -1
  248. package/dist/types/viewer/SchemaViewer.d.ts +2 -0
  249. package/dist/types/viewer/TableNode.d.ts +6 -0
  250. package/dist/types/viewer/brand.d.ts +32 -0
  251. package/dist/types/viewer/exportImage.d.ts +21 -2
  252. package/dist/types/viewer/graph.d.ts +16 -2
  253. package/dist/types/viewer/icons.d.ts +96 -0
  254. package/dist/types/viewer/intelligence.d.ts +55 -0
  255. package/dist/types/viewer/layout.d.ts +5 -0
  256. package/dist/types/viewer/offline.d.ts +9 -0
  257. package/dist/types/viewer/ui.d.ts +7 -29
  258. package/dist/viewer/app.css +1 -1
  259. package/dist/viewer/app.js +36 -8
  260. package/dist/viewer/favicon.ico +0 -0
  261. package/dist/viewer/favicon.svg +1 -1
  262. package/dist/viewer/index.html +2 -2
  263. package/dist/viewer/manifest.json +19 -13
  264. package/dist/viewer/offline.js +67 -0
  265. package/docs/contract.md +494 -26
  266. package/docs/integration.md +10 -7
  267. package/package.json +7 -2
  268. package/dist/lib/contract-N4axHCW3.js +0 -774
  269. package/dist/lib/contract-N4axHCW3.js.map +0 -1
@@ -0,0 +1,516 @@
1
+ {
2
+ "description": "A comparison that is now complete replaces an incomplete one and leaves no comparison_incomplete diagnostic",
3
+ "expected": {
4
+ "document": {
5
+ "comparisons": [
6
+ {
7
+ "baseline": {
8
+ "connection": "connection:primary",
9
+ "schema": null
10
+ },
11
+ "complete": true,
12
+ "differences": [
13
+ {
14
+ "baseline": null,
15
+ "certainty": "certain",
16
+ "change": "extra",
17
+ "fields": [],
18
+ "id": "x6c5dd68b395ae683",
19
+ "key": [
20
+ "users",
21
+ "email"
22
+ ],
23
+ "objectType": "column",
24
+ "severity": "error",
25
+ "target": {
26
+ "id": null,
27
+ "label": "public.users.email",
28
+ "table": "replica:public.users"
29
+ }
30
+ }
31
+ ],
32
+ "id": "caa66b93189252d11",
33
+ "omitted": 0,
34
+ "summary": {
35
+ "changed": 0,
36
+ "extra": 1,
37
+ "missing": 0
38
+ },
39
+ "target": {
40
+ "connection": "connection:replica",
41
+ "schema": null
42
+ }
43
+ }
44
+ ],
45
+ "connections": [
46
+ {
47
+ "coverage": {
48
+ "database": {
49
+ "complete": true,
50
+ "features": {
51
+ "checkConstraints": "complete",
52
+ "columnTypes": "complete",
53
+ "columns": "complete",
54
+ "comments": "complete",
55
+ "defaults": "complete",
56
+ "foreignKeys": "complete",
57
+ "includedColumns": "complete",
58
+ "indexExpressions": "complete",
59
+ "indexPredicates": "complete",
60
+ "indexes": "complete",
61
+ "models": "not_applicable",
62
+ "primaryKeys": "complete",
63
+ "referentialActions": "complete",
64
+ "relationships": "not_applicable",
65
+ "tables": "complete",
66
+ "uniqueConstraints": "complete"
67
+ },
68
+ "schemas": [
69
+ "public"
70
+ ]
71
+ },
72
+ "declared": null
73
+ },
74
+ "defaultSchema": "public",
75
+ "driver": "postgresql",
76
+ "id": "connection:primary",
77
+ "name": "primary",
78
+ "tables": [
79
+ {
80
+ "columns": [
81
+ {
82
+ "autoIncrement": false,
83
+ "collation": null,
84
+ "comment": null,
85
+ "default": null,
86
+ "enum": null,
87
+ "generated": null,
88
+ "name": "id",
89
+ "note": null,
90
+ "nullable": false,
91
+ "ormDefault": null,
92
+ "provenance": [
93
+ "database"
94
+ ],
95
+ "timezone": null,
96
+ "type": "bigint",
97
+ "typeName": "bigint"
98
+ }
99
+ ],
100
+ "comment": null,
101
+ "constraints": [],
102
+ "foreignKeys": [],
103
+ "id": "primary:public.users",
104
+ "indexes": [],
105
+ "name": "users",
106
+ "note": null,
107
+ "owner": {
108
+ "kind": "application",
109
+ "package": null
110
+ },
111
+ "primaryKey": [
112
+ "id"
113
+ ],
114
+ "provenance": [
115
+ "database"
116
+ ],
117
+ "schema": "public"
118
+ }
119
+ ]
120
+ },
121
+ {
122
+ "coverage": {
123
+ "database": {
124
+ "complete": true,
125
+ "features": {
126
+ "checkConstraints": "complete",
127
+ "columnTypes": "complete",
128
+ "columns": "complete",
129
+ "comments": "complete",
130
+ "defaults": "complete",
131
+ "foreignKeys": "complete",
132
+ "includedColumns": "complete",
133
+ "indexExpressions": "complete",
134
+ "indexPredicates": "complete",
135
+ "indexes": "complete",
136
+ "models": "not_applicable",
137
+ "primaryKeys": "complete",
138
+ "referentialActions": "complete",
139
+ "relationships": "not_applicable",
140
+ "tables": "complete",
141
+ "uniqueConstraints": "complete"
142
+ },
143
+ "schemas": [
144
+ "public"
145
+ ]
146
+ },
147
+ "declared": null
148
+ },
149
+ "defaultSchema": "public",
150
+ "driver": "postgresql",
151
+ "id": "connection:replica",
152
+ "name": "replica",
153
+ "tables": [
154
+ {
155
+ "columns": [
156
+ {
157
+ "autoIncrement": false,
158
+ "collation": null,
159
+ "comment": null,
160
+ "default": null,
161
+ "enum": null,
162
+ "generated": null,
163
+ "name": "id",
164
+ "note": null,
165
+ "nullable": false,
166
+ "ormDefault": null,
167
+ "provenance": [
168
+ "database"
169
+ ],
170
+ "timezone": null,
171
+ "type": "bigint",
172
+ "typeName": "bigint"
173
+ },
174
+ {
175
+ "autoIncrement": false,
176
+ "collation": null,
177
+ "comment": null,
178
+ "default": null,
179
+ "enum": null,
180
+ "generated": null,
181
+ "name": "email",
182
+ "note": null,
183
+ "nullable": false,
184
+ "ormDefault": null,
185
+ "provenance": [
186
+ "database"
187
+ ],
188
+ "timezone": null,
189
+ "type": "bigint",
190
+ "typeName": "bigint"
191
+ }
192
+ ],
193
+ "comment": null,
194
+ "constraints": [],
195
+ "foreignKeys": [],
196
+ "id": "replica:public.users",
197
+ "indexes": [],
198
+ "name": "users",
199
+ "note": null,
200
+ "owner": {
201
+ "kind": "application",
202
+ "package": null
203
+ },
204
+ "primaryKey": [
205
+ "id"
206
+ ],
207
+ "provenance": [
208
+ "database"
209
+ ],
210
+ "schema": "public"
211
+ }
212
+ ]
213
+ }
214
+ ],
215
+ "derivedLinks": [],
216
+ "diagnostics": [],
217
+ "format": "laranex-schema",
218
+ "generator": {
219
+ "name": "laranex-schema-viewer",
220
+ "orm": null
221
+ },
222
+ "inferredAssociations": [],
223
+ "links": [],
224
+ "migrations": [],
225
+ "models": [],
226
+ "note": null,
227
+ "relationships": [],
228
+ "source": "database",
229
+ "version": "2.0"
230
+ }
231
+ },
232
+ "input": {
233
+ "comparisons": [
234
+ {
235
+ "baseline": {
236
+ "connection": "connection:primary",
237
+ "schema": null
238
+ },
239
+ "complete": true,
240
+ "differences": [
241
+ {
242
+ "baseline": null,
243
+ "certainty": "certain",
244
+ "change": "extra",
245
+ "fields": [],
246
+ "id": "x6c5dd68b395ae683",
247
+ "key": [
248
+ "users",
249
+ "email"
250
+ ],
251
+ "objectType": "column",
252
+ "severity": "error",
253
+ "target": {
254
+ "id": null,
255
+ "label": "public.users.email",
256
+ "table": "replica:public.users"
257
+ }
258
+ }
259
+ ],
260
+ "id": "caa66b93189252d11",
261
+ "omitted": 0,
262
+ "summary": {
263
+ "changed": 0,
264
+ "extra": 1,
265
+ "missing": 0
266
+ },
267
+ "target": {
268
+ "connection": "connection:replica",
269
+ "schema": null
270
+ }
271
+ }
272
+ ],
273
+ "document": {
274
+ "comparisons": [
275
+ {
276
+ "baseline": {
277
+ "connection": "connection:primary",
278
+ "schema": null
279
+ },
280
+ "complete": false,
281
+ "differences": [
282
+ {
283
+ "baseline": null,
284
+ "certainty": "certain",
285
+ "change": "extra",
286
+ "fields": [],
287
+ "id": "x6c5dd68b395ae683",
288
+ "key": [
289
+ "users",
290
+ "email"
291
+ ],
292
+ "objectType": "column",
293
+ "severity": "error",
294
+ "target": {
295
+ "id": null,
296
+ "label": "public.users.email",
297
+ "table": "replica:public.users"
298
+ }
299
+ }
300
+ ],
301
+ "id": "caa66b93189252d11",
302
+ "omitted": 0,
303
+ "summary": {
304
+ "changed": 0,
305
+ "extra": 1,
306
+ "missing": 0
307
+ },
308
+ "target": {
309
+ "connection": "connection:replica",
310
+ "schema": null
311
+ }
312
+ }
313
+ ],
314
+ "connections": [
315
+ {
316
+ "coverage": {
317
+ "database": {
318
+ "complete": true,
319
+ "features": {
320
+ "checkConstraints": "complete",
321
+ "columnTypes": "complete",
322
+ "columns": "complete",
323
+ "comments": "complete",
324
+ "defaults": "complete",
325
+ "foreignKeys": "complete",
326
+ "includedColumns": "complete",
327
+ "indexExpressions": "complete",
328
+ "indexPredicates": "complete",
329
+ "indexes": "complete",
330
+ "models": "not_applicable",
331
+ "primaryKeys": "complete",
332
+ "referentialActions": "complete",
333
+ "relationships": "not_applicable",
334
+ "tables": "complete",
335
+ "uniqueConstraints": "complete"
336
+ },
337
+ "schemas": [
338
+ "public"
339
+ ]
340
+ },
341
+ "declared": null
342
+ },
343
+ "defaultSchema": "public",
344
+ "driver": "postgresql",
345
+ "id": "connection:primary",
346
+ "name": "primary",
347
+ "tables": [
348
+ {
349
+ "columns": [
350
+ {
351
+ "autoIncrement": false,
352
+ "collation": null,
353
+ "comment": null,
354
+ "default": null,
355
+ "enum": null,
356
+ "generated": null,
357
+ "name": "id",
358
+ "note": null,
359
+ "nullable": false,
360
+ "ormDefault": null,
361
+ "provenance": [
362
+ "database"
363
+ ],
364
+ "timezone": null,
365
+ "type": "bigint",
366
+ "typeName": "bigint"
367
+ }
368
+ ],
369
+ "comment": null,
370
+ "constraints": [],
371
+ "foreignKeys": [],
372
+ "id": "primary:public.users",
373
+ "indexes": [],
374
+ "name": "users",
375
+ "note": null,
376
+ "owner": {
377
+ "kind": "application",
378
+ "package": null
379
+ },
380
+ "primaryKey": [
381
+ "id"
382
+ ],
383
+ "provenance": [
384
+ "database"
385
+ ],
386
+ "schema": "public"
387
+ }
388
+ ]
389
+ },
390
+ {
391
+ "coverage": {
392
+ "database": {
393
+ "complete": true,
394
+ "features": {
395
+ "checkConstraints": "complete",
396
+ "columnTypes": "complete",
397
+ "columns": "complete",
398
+ "comments": "complete",
399
+ "defaults": "complete",
400
+ "foreignKeys": "complete",
401
+ "includedColumns": "complete",
402
+ "indexExpressions": "complete",
403
+ "indexPredicates": "complete",
404
+ "indexes": "complete",
405
+ "models": "not_applicable",
406
+ "primaryKeys": "complete",
407
+ "referentialActions": "complete",
408
+ "relationships": "not_applicable",
409
+ "tables": "complete",
410
+ "uniqueConstraints": "complete"
411
+ },
412
+ "schemas": [
413
+ "public"
414
+ ]
415
+ },
416
+ "declared": null
417
+ },
418
+ "defaultSchema": "public",
419
+ "driver": "postgresql",
420
+ "id": "connection:replica",
421
+ "name": "replica",
422
+ "tables": [
423
+ {
424
+ "columns": [
425
+ {
426
+ "autoIncrement": false,
427
+ "collation": null,
428
+ "comment": null,
429
+ "default": null,
430
+ "enum": null,
431
+ "generated": null,
432
+ "name": "id",
433
+ "note": null,
434
+ "nullable": false,
435
+ "ormDefault": null,
436
+ "provenance": [
437
+ "database"
438
+ ],
439
+ "timezone": null,
440
+ "type": "bigint",
441
+ "typeName": "bigint"
442
+ },
443
+ {
444
+ "autoIncrement": false,
445
+ "collation": null,
446
+ "comment": null,
447
+ "default": null,
448
+ "enum": null,
449
+ "generated": null,
450
+ "name": "email",
451
+ "note": null,
452
+ "nullable": false,
453
+ "ormDefault": null,
454
+ "provenance": [
455
+ "database"
456
+ ],
457
+ "timezone": null,
458
+ "type": "bigint",
459
+ "typeName": "bigint"
460
+ }
461
+ ],
462
+ "comment": null,
463
+ "constraints": [],
464
+ "foreignKeys": [],
465
+ "id": "replica:public.users",
466
+ "indexes": [],
467
+ "name": "users",
468
+ "note": null,
469
+ "owner": {
470
+ "kind": "application",
471
+ "package": null
472
+ },
473
+ "primaryKey": [
474
+ "id"
475
+ ],
476
+ "provenance": [
477
+ "database"
478
+ ],
479
+ "schema": "public"
480
+ }
481
+ ]
482
+ }
483
+ ],
484
+ "derivedLinks": [],
485
+ "diagnostics": [
486
+ {
487
+ "category": "inspection",
488
+ "certainty": "certain",
489
+ "id": "nd37d065bf3984efa",
490
+ "kind": "comparison_incomplete",
491
+ "message": "Comparison primary=replica is incomplete: the target replica is not completely covered (indexes partial)",
492
+ "severity": "warning",
493
+ "subject": {
494
+ "columns": null,
495
+ "id": "caa66b93189252d11",
496
+ "label": "primary=replica",
497
+ "type": "comparison"
498
+ }
499
+ }
500
+ ],
501
+ "format": "laranex-schema",
502
+ "generator": {
503
+ "name": "laranex-schema-viewer",
504
+ "orm": null
505
+ },
506
+ "inferredAssociations": [],
507
+ "links": [],
508
+ "migrations": [],
509
+ "models": [],
510
+ "note": null,
511
+ "relationships": [],
512
+ "source": "database",
513
+ "version": "2.0"
514
+ }
515
+ }
516
+ }