@serve.zone/interfaces 27.2.0 → 27.3.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/changelog.md +18 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.d.ts +513 -5
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.js +1946 -10
- package/dist_ts/runtime.corestore.d.ts +89 -0
- package/dist_ts/runtime.corestore.js +306 -2
- package/package.json +1 -1
- package/readme.md +78 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/runtime.cloudlylegacydeploymentsettlement.ts +3764 -19
- package/ts/runtime.corestore.ts +608 -0
|
@@ -3,7 +3,7 @@ import { isSha256Digest } from './data/immutableimage.js';
|
|
|
3
3
|
import { validateSecretRecipientMetadata, verifySecretEnvelopeContext, } from './data/secret.js';
|
|
4
4
|
import { validateObjectStorageRetentionEvidence, validateObjectStorageRetentionIntent, } from './platform/objectstorageretention.js';
|
|
5
5
|
import { validatePlatformObjectStorageBucketName } from './platform/objectstorage.js';
|
|
6
|
-
import { canonicalizeStrictJson, createCanonicalJsonSha256Hex, } from './private/canonicaljson.js';
|
|
6
|
+
import { canonicalizeStrictJson, createCanonicalJsonSha256Hex, deepFreezeValue, } from './private/canonicaljson.js';
|
|
7
7
|
export const corestoreProviderConfigIds = Object.freeze({
|
|
8
8
|
database: 'cloudly-corestore-database',
|
|
9
9
|
objectstorage: 'cloudly-corestore-objectstorage',
|
|
@@ -883,4 +883,308 @@ export const getCorestoreCredentialPublicationErrorMetadata = (codeArg) => ({
|
|
|
883
883
|
code: codeArg,
|
|
884
884
|
retryable: corestoreCredentialPublicationErrorMetadata[codeArg].retryable,
|
|
885
885
|
});
|
|
886
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5jb3Jlc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9ydW50aW1lLmNvcmVzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQU14QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUNMLCtCQUErQixFQUMvQiwyQkFBMkIsR0FDNUIsTUFBTSxrQkFBa0IsQ0FBQztBQU8xQixPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLG9DQUFvQyxHQUNyQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsNEJBQTRCLEdBQzdCLE1BQU0sNEJBQTRCLENBQUM7QUFJcEMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN0RCxRQUFRLEVBQUUsNEJBQTRCO0lBQ3RDLGFBQWEsRUFBRSxpQ0FBaUM7Q0FDeEMsQ0FBQyxDQUFDO0FBQ1osTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsdUJBQWdDLENBQUM7QUFDcEUsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsNEJBQXFDLENBQUM7QUFDeEYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcscUJBQThCLENBQUM7QUFDNUUsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsWUFBcUIsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVELHVCQUF1QixFQUFFLEdBQUc7SUFDNUIsd0JBQXdCLEVBQUUsR0FBRztJQUM3QixzQkFBc0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0lBQzNDLDRCQUE0QixFQUFFLENBQUMsR0FBRyxJQUFJ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LE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUMvQixJQUFJLFNBQWlCLENBQUM7UUFDdEIsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNsQixLQUFLLEVBQUUsQ0FBQztRQUNWLENBQUM7YUFBTSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUk7ZUFDcEMsS0FBSyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTTtlQUMzQixRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xFLFNBQVMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNsRSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2IsQ0FBQzthQUFNLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSTtlQUNwQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNO2VBQzNCLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFFLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztlQUN0RCxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7ZUFDdEQsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUUsSUFBSSxJQUFJLElBQUksUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7a0JBQzlCLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztrQkFDcEMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ2xDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDYixDQUFDO2FBQU0sSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJO2VBQ3BDLEtBQUssR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU07ZUFDM0IsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2VBQ3RELFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFFLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztlQUN0RCxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxJQUFJLElBQUk7ZUFDNUQsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUUsSUFBSSxJQUFJLElBQUksUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsRSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7a0JBQzlCLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztrQkFDckMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcs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
|
|
886
|
+
const corestoreDatabaseBackupMaximumSnapshotPayloadBytes = 96 * 1024 * 1024;
|
|
887
|
+
export const corestoreDatabaseBackupRuntimeLimits = Object.freeze({
|
|
888
|
+
maximumControlBytes: 16 * 1024,
|
|
889
|
+
maximumClosureBytes: 256 * 1024 * 1024,
|
|
890
|
+
maximumVerifiedPlaintextBytes: 128 * 1024 * 1024,
|
|
891
|
+
maximumSnapshotPayloadBytes: corestoreDatabaseBackupMaximumSnapshotPayloadBytes,
|
|
892
|
+
maximumSnapshotOriginalBytes: corestoreDatabaseBackupMaximumSnapshotPayloadBytes + 1,
|
|
893
|
+
maximumClosureObjects: 4096,
|
|
894
|
+
maximumClosureChunks: 1_000_000,
|
|
895
|
+
maximumServiceNameBytes: 1024,
|
|
896
|
+
});
|
|
897
|
+
const corestoreDatabaseBackupIdentifierPattern = /^[A-Za-z0-9][A-Za-z0-9_.:-]{0,255}$/;
|
|
898
|
+
const corestoreDatabaseAllocationRehearsalIdPattern = /^[A-Za-z0-9][A-Za-z0-9_.:-]{0,191}$/;
|
|
899
|
+
const failCorestoreDatabaseBackup = (reasonArg) => {
|
|
900
|
+
throw new Error(reasonArg);
|
|
901
|
+
};
|
|
902
|
+
const readCorestoreDatabaseBackupRecord = (valueArg, pathArg) => {
|
|
903
|
+
if (!valueArg || typeof valueArg !== 'object' || Array.isArray(valueArg)) {
|
|
904
|
+
return failCorestoreDatabaseBackup(`${pathArg} must be a plain object`);
|
|
905
|
+
}
|
|
906
|
+
const prototype = Object.getPrototypeOf(valueArg);
|
|
907
|
+
if (prototype !== Object.prototype && prototype !== null) {
|
|
908
|
+
return failCorestoreDatabaseBackup(`${pathArg} must be a plain object`);
|
|
909
|
+
}
|
|
910
|
+
const value = valueArg;
|
|
911
|
+
for (const key of Reflect.ownKeys(value)) {
|
|
912
|
+
if (typeof key !== 'string') {
|
|
913
|
+
return failCorestoreDatabaseBackup(`${pathArg} must contain string keys only`);
|
|
914
|
+
}
|
|
915
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
916
|
+
if (!descriptor || !descriptor.enumerable || !Object.hasOwn(descriptor, 'value')) {
|
|
917
|
+
return failCorestoreDatabaseBackup(`${pathArg} must contain data properties only`);
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
return value;
|
|
921
|
+
};
|
|
922
|
+
const assertCorestoreDatabaseBackupExactKeys = (valueArg, keysArg, pathArg) => {
|
|
923
|
+
if (!hasExactKeys(valueArg, keysArg)) {
|
|
924
|
+
failCorestoreDatabaseBackup(`${pathArg} must use its exact schema`);
|
|
925
|
+
}
|
|
926
|
+
};
|
|
927
|
+
const readCorestoreDatabaseBackupIdentifier = (valueArg, pathArg) => {
|
|
928
|
+
if (typeof valueArg !== 'string' || !corestoreDatabaseBackupIdentifierPattern.test(valueArg)) {
|
|
929
|
+
return failCorestoreDatabaseBackup(`${pathArg} must be a canonical identifier`);
|
|
930
|
+
}
|
|
931
|
+
return valueArg;
|
|
932
|
+
};
|
|
933
|
+
const readCorestoreDatabaseBackupSha256 = (valueArg, pathArg) => {
|
|
934
|
+
if (typeof valueArg !== 'string' || !bareSha256Pattern.test(valueArg)) {
|
|
935
|
+
return failCorestoreDatabaseBackup(`${pathArg} must be bare lowercase SHA-256`);
|
|
936
|
+
}
|
|
937
|
+
return valueArg;
|
|
938
|
+
};
|
|
939
|
+
const readCorestoreDatabaseBackupInteger = (valueArg, pathArg, minimumArg, maximumArg = Number.MAX_SAFE_INTEGER) => {
|
|
940
|
+
if (!Number.isSafeInteger(valueArg)
|
|
941
|
+
|| Object.is(valueArg, -0)
|
|
942
|
+
|| valueArg < minimumArg
|
|
943
|
+
|| valueArg > maximumArg) {
|
|
944
|
+
return failCorestoreDatabaseBackup(`${pathArg} must be a bounded safe integer`);
|
|
945
|
+
}
|
|
946
|
+
return valueArg;
|
|
947
|
+
};
|
|
948
|
+
const finalizeCorestoreDatabaseBackup = (valueArg, pathArg) => {
|
|
949
|
+
const canonical = canonicalizeStrictJson(valueArg, failCorestoreDatabaseBackup, pathArg);
|
|
950
|
+
if (utf8ByteLength(canonical) > corestoreDatabaseBackupRuntimeLimits.maximumControlBytes) {
|
|
951
|
+
failCorestoreDatabaseBackup(`${pathArg} exceeds its canonical byte limit`);
|
|
952
|
+
}
|
|
953
|
+
return deepFreezeValue(valueArg);
|
|
954
|
+
};
|
|
955
|
+
const normalizeCorestoreDatabaseAllocationReferenceInternal = (valueArg, pathArg) => {
|
|
956
|
+
const value = readCorestoreDatabaseBackupRecord(valueArg, pathArg);
|
|
957
|
+
assertCorestoreDatabaseBackupExactKeys(value, [
|
|
958
|
+
'purpose',
|
|
959
|
+
'rehearsalId',
|
|
960
|
+
'allocationId',
|
|
961
|
+
'generation',
|
|
962
|
+
'bindingSha256',
|
|
963
|
+
'receiptSha256',
|
|
964
|
+
], pathArg);
|
|
965
|
+
if (value.purpose !== 'scratch-rehearsal'
|
|
966
|
+
|| typeof value.rehearsalId !== 'string'
|
|
967
|
+
|| !corestoreDatabaseAllocationRehearsalIdPattern.test(value.rehearsalId)) {
|
|
968
|
+
failCorestoreDatabaseBackup(`${pathArg} rehearsal authority must be canonical`);
|
|
969
|
+
}
|
|
970
|
+
const rehearsalId = value.rehearsalId;
|
|
971
|
+
return {
|
|
972
|
+
purpose: 'scratch-rehearsal',
|
|
973
|
+
rehearsalId,
|
|
974
|
+
allocationId: readCorestoreDatabaseBackupSha256(value.allocationId, `${pathArg}.allocationId`),
|
|
975
|
+
generation: readCorestoreDatabaseBackupInteger(value.generation, `${pathArg}.generation`, 1),
|
|
976
|
+
bindingSha256: readCorestoreDatabaseBackupSha256(value.bindingSha256, `${pathArg}.bindingSha256`),
|
|
977
|
+
receiptSha256: readCorestoreDatabaseBackupSha256(value.receiptSha256, `${pathArg}.receiptSha256`),
|
|
978
|
+
};
|
|
979
|
+
};
|
|
980
|
+
export const normalizeCorestoreDatabaseAllocationReference = (valueArg) => finalizeCorestoreDatabaseBackup(normalizeCorestoreDatabaseAllocationReferenceInternal(valueArg, 'databaseAllocation'), 'databaseAllocation');
|
|
981
|
+
const normalizeCorestoreDatabaseBackupReceiptInternal = (valueArg, pathArg) => {
|
|
982
|
+
const value = readCorestoreDatabaseBackupRecord(valueArg, pathArg);
|
|
983
|
+
assertCorestoreDatabaseBackupExactKeys(value, [
|
|
984
|
+
'schemaVersion',
|
|
985
|
+
'format',
|
|
986
|
+
'backupId',
|
|
987
|
+
'sourceServiceId',
|
|
988
|
+
'createdAt',
|
|
989
|
+
'snapshot',
|
|
990
|
+
'closure',
|
|
991
|
+
], pathArg);
|
|
992
|
+
if (value.schemaVersion !== 1 || value.format !== 'corestore.database.backup.v1') {
|
|
993
|
+
failCorestoreDatabaseBackup(`${pathArg} version must be canonical`);
|
|
994
|
+
}
|
|
995
|
+
const backupId = readCorestoreDatabaseBackupIdentifier(value.backupId, `${pathArg}.backupId`);
|
|
996
|
+
const sourceServiceId = readCorestoreDatabaseBackupIdentifier(value.sourceServiceId, `${pathArg}.sourceServiceId`);
|
|
997
|
+
const createdAt = readCorestoreDatabaseBackupInteger(value.createdAt, `${pathArg}.createdAt`, 1);
|
|
998
|
+
const snapshotValue = readCorestoreDatabaseBackupRecord(value.snapshot, `${pathArg}.snapshot`);
|
|
999
|
+
const hasDatabaseAllocation = Object.hasOwn(snapshotValue, 'databaseAllocation');
|
|
1000
|
+
assertCorestoreDatabaseBackupExactKeys(snapshotValue, [
|
|
1001
|
+
'capability',
|
|
1002
|
+
'resourceName',
|
|
1003
|
+
'snapshotId',
|
|
1004
|
+
'snapshotName',
|
|
1005
|
+
'originalSize',
|
|
1006
|
+
'storedSize',
|
|
1007
|
+
'createdAt',
|
|
1008
|
+
'tags',
|
|
1009
|
+
'databaseName',
|
|
1010
|
+
...(hasDatabaseAllocation ? ['databaseAllocation'] : []),
|
|
1011
|
+
], `${pathArg}.snapshot`);
|
|
1012
|
+
if (snapshotValue.capability !== 'database') {
|
|
1013
|
+
failCorestoreDatabaseBackup(`${pathArg}.snapshot capability must be database`);
|
|
1014
|
+
}
|
|
1015
|
+
const resourceName = readCorestoreDatabaseBackupIdentifier(snapshotValue.resourceName, `${pathArg}.snapshot.resourceName`);
|
|
1016
|
+
const snapshotId = readCorestoreDatabaseBackupIdentifier(snapshotValue.snapshotId, `${pathArg}.snapshot.snapshotId`);
|
|
1017
|
+
const snapshotName = readCorestoreDatabaseBackupIdentifier(snapshotValue.snapshotName, `${pathArg}.snapshot.snapshotName`);
|
|
1018
|
+
const databaseName = readCorestoreDatabaseBackupIdentifier(snapshotValue.databaseName, `${pathArg}.snapshot.databaseName`);
|
|
1019
|
+
const snapshotCreatedAt = readCorestoreDatabaseBackupInteger(snapshotValue.createdAt, `${pathArg}.snapshot.createdAt`, 1);
|
|
1020
|
+
if (snapshotName !== backupId || snapshotCreatedAt !== createdAt) {
|
|
1021
|
+
failCorestoreDatabaseBackup(`${pathArg}.snapshot identity must match its receipt`);
|
|
1022
|
+
}
|
|
1023
|
+
const tagsValue = readCorestoreDatabaseBackupRecord(snapshotValue.tags, `${pathArg}.snapshot.tags`);
|
|
1024
|
+
assertCorestoreDatabaseBackupExactKeys(tagsValue, [
|
|
1025
|
+
'corestore',
|
|
1026
|
+
'serviceId',
|
|
1027
|
+
'serviceName',
|
|
1028
|
+
'capability',
|
|
1029
|
+
'resourceName',
|
|
1030
|
+
'snapshotName',
|
|
1031
|
+
'backupId',
|
|
1032
|
+
], `${pathArg}.snapshot.tags`);
|
|
1033
|
+
if (tagsValue.corestore !== 'resource'
|
|
1034
|
+
|| tagsValue.serviceId !== sourceServiceId
|
|
1035
|
+
|| tagsValue.capability !== 'database'
|
|
1036
|
+
|| tagsValue.resourceName !== resourceName
|
|
1037
|
+
|| tagsValue.snapshotName !== backupId
|
|
1038
|
+
|| tagsValue.backupId !== backupId
|
|
1039
|
+
|| typeof tagsValue.serviceName !== 'string'
|
|
1040
|
+
|| tagsValue.serviceName.length > 256
|
|
1041
|
+
|| utf8ByteLength(tagsValue.serviceName)
|
|
1042
|
+
> corestoreDatabaseBackupRuntimeLimits.maximumServiceNameBytes) {
|
|
1043
|
+
failCorestoreDatabaseBackup(`${pathArg}.snapshot.tags ownership must be canonical`);
|
|
1044
|
+
}
|
|
1045
|
+
const serviceName = tagsValue.serviceName;
|
|
1046
|
+
const closureValue = readCorestoreDatabaseBackupRecord(value.closure, `${pathArg}.closure`);
|
|
1047
|
+
assertCorestoreDatabaseBackupExactKeys(closureValue, [
|
|
1048
|
+
'formatVersion',
|
|
1049
|
+
'snapshotIds',
|
|
1050
|
+
'objectCount',
|
|
1051
|
+
'packCount',
|
|
1052
|
+
'chunkCount',
|
|
1053
|
+
'payloadBytes',
|
|
1054
|
+
'archiveBytes',
|
|
1055
|
+
'sha256',
|
|
1056
|
+
], `${pathArg}.closure`);
|
|
1057
|
+
if (!Array.isArray(closureValue.snapshotIds)
|
|
1058
|
+
|| Object.getPrototypeOf(closureValue.snapshotIds) !== Array.prototype
|
|
1059
|
+
|| closureValue.snapshotIds.length !== 1
|
|
1060
|
+
|| !Object.hasOwn(closureValue.snapshotIds, 0)
|
|
1061
|
+
|| Reflect.ownKeys(closureValue.snapshotIds).some((keyArg) => keyArg !== 'length' && keyArg !== '0')) {
|
|
1062
|
+
failCorestoreDatabaseBackup(`${pathArg}.closure snapshot coverage must be exact`);
|
|
1063
|
+
}
|
|
1064
|
+
const snapshotIdDescriptor = Object.getOwnPropertyDescriptor(closureValue.snapshotIds, '0');
|
|
1065
|
+
if (!snapshotIdDescriptor
|
|
1066
|
+
|| !snapshotIdDescriptor.enumerable
|
|
1067
|
+
|| !Object.hasOwn(snapshotIdDescriptor, 'value')
|
|
1068
|
+
|| snapshotIdDescriptor.value !== snapshotId) {
|
|
1069
|
+
failCorestoreDatabaseBackup(`${pathArg}.closure snapshot coverage must use data entries`);
|
|
1070
|
+
}
|
|
1071
|
+
const objectCount = readCorestoreDatabaseBackupInteger(closureValue.objectCount, `${pathArg}.closure.objectCount`, 1, corestoreDatabaseBackupRuntimeLimits.maximumClosureObjects);
|
|
1072
|
+
const packCount = readCorestoreDatabaseBackupInteger(closureValue.packCount, `${pathArg}.closure.packCount`, 1, corestoreDatabaseBackupRuntimeLimits.maximumClosureObjects);
|
|
1073
|
+
const chunkCount = readCorestoreDatabaseBackupInteger(closureValue.chunkCount, `${pathArg}.closure.chunkCount`, 1, corestoreDatabaseBackupRuntimeLimits.maximumClosureChunks);
|
|
1074
|
+
if (packCount > objectCount) {
|
|
1075
|
+
failCorestoreDatabaseBackup(`${pathArg}.closure pack coverage must be canonical`);
|
|
1076
|
+
}
|
|
1077
|
+
const originalSize = readCorestoreDatabaseBackupInteger(snapshotValue.originalSize, `${pathArg}.snapshot.originalSize`, 1, corestoreDatabaseBackupRuntimeLimits.maximumSnapshotOriginalBytes);
|
|
1078
|
+
const storedSize = readCorestoreDatabaseBackupInteger(snapshotValue.storedSize, `${pathArg}.snapshot.storedSize`, 1, corestoreDatabaseBackupRuntimeLimits.maximumClosureBytes);
|
|
1079
|
+
const databaseAllocation = hasDatabaseAllocation
|
|
1080
|
+
? normalizeCorestoreDatabaseAllocationReferenceInternal(snapshotValue.databaseAllocation, `${pathArg}.snapshot.databaseAllocation`)
|
|
1081
|
+
: undefined;
|
|
1082
|
+
return {
|
|
1083
|
+
schemaVersion: 1,
|
|
1084
|
+
format: 'corestore.database.backup.v1',
|
|
1085
|
+
backupId,
|
|
1086
|
+
sourceServiceId,
|
|
1087
|
+
createdAt,
|
|
1088
|
+
snapshot: {
|
|
1089
|
+
capability: 'database',
|
|
1090
|
+
resourceName,
|
|
1091
|
+
snapshotId,
|
|
1092
|
+
snapshotName,
|
|
1093
|
+
originalSize,
|
|
1094
|
+
storedSize,
|
|
1095
|
+
createdAt: snapshotCreatedAt,
|
|
1096
|
+
tags: {
|
|
1097
|
+
corestore: 'resource',
|
|
1098
|
+
serviceId: sourceServiceId,
|
|
1099
|
+
serviceName,
|
|
1100
|
+
capability: 'database',
|
|
1101
|
+
resourceName,
|
|
1102
|
+
snapshotName,
|
|
1103
|
+
backupId,
|
|
1104
|
+
},
|
|
1105
|
+
databaseName,
|
|
1106
|
+
...(databaseAllocation ? { databaseAllocation } : {}),
|
|
1107
|
+
},
|
|
1108
|
+
closure: {
|
|
1109
|
+
formatVersion: closureValue.formatVersion === 1
|
|
1110
|
+
? 1
|
|
1111
|
+
: failCorestoreDatabaseBackup(`${pathArg}.closure formatVersion must be 1`),
|
|
1112
|
+
snapshotIds: [snapshotId],
|
|
1113
|
+
objectCount,
|
|
1114
|
+
packCount,
|
|
1115
|
+
chunkCount,
|
|
1116
|
+
payloadBytes: readCorestoreDatabaseBackupInteger(closureValue.payloadBytes, `${pathArg}.closure.payloadBytes`, 1, corestoreDatabaseBackupRuntimeLimits.maximumClosureBytes),
|
|
1117
|
+
archiveBytes: readCorestoreDatabaseBackupInteger(closureValue.archiveBytes, `${pathArg}.closure.archiveBytes`, 1, corestoreDatabaseBackupRuntimeLimits.maximumClosureBytes),
|
|
1118
|
+
sha256: readCorestoreDatabaseBackupSha256(closureValue.sha256, `${pathArg}.closure.sha256`),
|
|
1119
|
+
},
|
|
1120
|
+
};
|
|
1121
|
+
};
|
|
1122
|
+
export const normalizeCorestoreDatabaseBackupReceipt = (valueArg) => finalizeCorestoreDatabaseBackup(normalizeCorestoreDatabaseBackupReceiptInternal(valueArg, 'databaseBackupReceipt'), 'databaseBackupReceipt');
|
|
1123
|
+
export const normalizeCorestoreDatabaseBackupRestoreRequest = (valueArg) => {
|
|
1124
|
+
const value = readCorestoreDatabaseBackupRecord(valueArg, 'databaseBackupRestoreRequest');
|
|
1125
|
+
const hasAllocation = Object.hasOwn(value, 'expectedDatabaseAllocation');
|
|
1126
|
+
const hasRestoreAttemptId = Object.hasOwn(value, 'restoreAttemptId');
|
|
1127
|
+
assertCorestoreDatabaseBackupExactKeys(value, [
|
|
1128
|
+
'schemaVersion',
|
|
1129
|
+
'targetServiceId',
|
|
1130
|
+
'receipt',
|
|
1131
|
+
...(hasAllocation ? ['expectedDatabaseAllocation'] : []),
|
|
1132
|
+
...(hasRestoreAttemptId ? ['restoreAttemptId'] : []),
|
|
1133
|
+
], 'databaseBackupRestoreRequest');
|
|
1134
|
+
if (value.schemaVersion !== 1) {
|
|
1135
|
+
failCorestoreDatabaseBackup('databaseBackupRestoreRequest schemaVersion must be 1');
|
|
1136
|
+
}
|
|
1137
|
+
const receipt = normalizeCorestoreDatabaseBackupReceiptInternal(value.receipt, 'databaseBackupRestoreRequest.receipt');
|
|
1138
|
+
const expectedDatabaseAllocation = hasAllocation
|
|
1139
|
+
? normalizeCorestoreDatabaseAllocationReferenceInternal(value.expectedDatabaseAllocation, 'databaseBackupRestoreRequest.expectedDatabaseAllocation')
|
|
1140
|
+
: undefined;
|
|
1141
|
+
const restoreAttemptId = hasRestoreAttemptId
|
|
1142
|
+
? readCorestoreDatabaseBackupIdentifier(value.restoreAttemptId, 'databaseBackupRestoreRequest.restoreAttemptId')
|
|
1143
|
+
: undefined;
|
|
1144
|
+
return finalizeCorestoreDatabaseBackup({
|
|
1145
|
+
schemaVersion: 1,
|
|
1146
|
+
targetServiceId: readCorestoreDatabaseBackupIdentifier(value.targetServiceId, 'databaseBackupRestoreRequest.targetServiceId'),
|
|
1147
|
+
receipt,
|
|
1148
|
+
...(expectedDatabaseAllocation ? { expectedDatabaseAllocation } : {}),
|
|
1149
|
+
...(restoreAttemptId ? { restoreAttemptId } : {}),
|
|
1150
|
+
}, 'databaseBackupRestoreRequest');
|
|
1151
|
+
};
|
|
1152
|
+
export const normalizeCorestoreDatabaseBackupRestoreResponse = (valueArg) => {
|
|
1153
|
+
const value = readCorestoreDatabaseBackupRecord(valueArg, 'databaseBackupRestoreResponse');
|
|
1154
|
+
assertCorestoreDatabaseBackupExactKeys(value, [
|
|
1155
|
+
'schemaVersion',
|
|
1156
|
+
'ok',
|
|
1157
|
+
'backupId',
|
|
1158
|
+
'sourceServiceId',
|
|
1159
|
+
'targetServiceId',
|
|
1160
|
+
'snapshotId',
|
|
1161
|
+
'restoreId',
|
|
1162
|
+
'requestSha256',
|
|
1163
|
+
'replayed',
|
|
1164
|
+
], 'databaseBackupRestoreResponse');
|
|
1165
|
+
if (value.schemaVersion !== 1 || value.ok !== true || typeof value.replayed !== 'boolean') {
|
|
1166
|
+
failCorestoreDatabaseBackup('databaseBackupRestoreResponse constants must be canonical');
|
|
1167
|
+
}
|
|
1168
|
+
const replayed = value.replayed;
|
|
1169
|
+
return finalizeCorestoreDatabaseBackup({
|
|
1170
|
+
schemaVersion: 1,
|
|
1171
|
+
ok: true,
|
|
1172
|
+
backupId: readCorestoreDatabaseBackupIdentifier(value.backupId, 'databaseBackupRestoreResponse.backupId'),
|
|
1173
|
+
sourceServiceId: readCorestoreDatabaseBackupIdentifier(value.sourceServiceId, 'databaseBackupRestoreResponse.sourceServiceId'),
|
|
1174
|
+
targetServiceId: readCorestoreDatabaseBackupIdentifier(value.targetServiceId, 'databaseBackupRestoreResponse.targetServiceId'),
|
|
1175
|
+
snapshotId: readCorestoreDatabaseBackupIdentifier(value.snapshotId, 'databaseBackupRestoreResponse.snapshotId'),
|
|
1176
|
+
restoreId: readCorestoreDatabaseBackupIdentifier(value.restoreId, 'databaseBackupRestoreResponse.restoreId'),
|
|
1177
|
+
requestSha256: readCorestoreDatabaseBackupSha256(value.requestSha256, 'databaseBackupRestoreResponse.requestSha256'),
|
|
1178
|
+
replayed,
|
|
1179
|
+
}, 'databaseBackupRestoreResponse');
|
|
1180
|
+
};
|
|
1181
|
+
const createCorestoreDatabaseBackupCanonicalJson = (valueArg, pathArg) => canonicalizeStrictJson(valueArg, failCorestoreDatabaseBackup, pathArg);
|
|
1182
|
+
export const encodeCorestoreDatabaseAllocationReference = (valueArg) => new TextEncoder().encode(createCorestoreDatabaseBackupCanonicalJson(normalizeCorestoreDatabaseAllocationReference(valueArg), 'databaseAllocation'));
|
|
1183
|
+
export const encodeCorestoreDatabaseBackupReceipt = (valueArg) => new TextEncoder().encode(createCorestoreDatabaseBackupCanonicalJson(normalizeCorestoreDatabaseBackupReceipt(valueArg), 'databaseBackupReceipt'));
|
|
1184
|
+
export const encodeCorestoreDatabaseBackupRestoreRequest = (valueArg) => new TextEncoder().encode(createCorestoreDatabaseBackupCanonicalJson(normalizeCorestoreDatabaseBackupRestoreRequest(valueArg), 'databaseBackupRestoreRequest'));
|
|
1185
|
+
export const encodeCorestoreDatabaseBackupRestoreResponse = (valueArg) => new TextEncoder().encode(createCorestoreDatabaseBackupCanonicalJson(normalizeCorestoreDatabaseBackupRestoreResponse(valueArg), 'databaseBackupRestoreResponse'));
|
|
1186
|
+
export const computeCorestoreDatabaseAllocationReferenceSha256 = async (valueArg) => createCanonicalJsonSha256Hex(createCorestoreDatabaseBackupCanonicalJson(normalizeCorestoreDatabaseAllocationReference(valueArg), 'databaseAllocation'), failCorestoreDatabaseBackup);
|
|
1187
|
+
export const computeCorestoreDatabaseBackupReceiptSha256 = async (valueArg) => createCanonicalJsonSha256Hex(createCorestoreDatabaseBackupCanonicalJson(normalizeCorestoreDatabaseBackupReceipt(valueArg), 'databaseBackupReceipt'), failCorestoreDatabaseBackup);
|
|
1188
|
+
export const computeCorestoreDatabaseBackupRestoreRequestSha256 = async (valueArg) => createCanonicalJsonSha256Hex(createCorestoreDatabaseBackupCanonicalJson(normalizeCorestoreDatabaseBackupRestoreRequest(valueArg), 'databaseBackupRestoreRequest'), failCorestoreDatabaseBackup);
|
|
1189
|
+
export const computeCorestoreDatabaseBackupRestoreResponseSha256 = async (valueArg) => createCanonicalJsonSha256Hex(createCorestoreDatabaseBackupCanonicalJson(normalizeCorestoreDatabaseBackupRestoreResponse(valueArg), 'databaseBackupRestoreResponse'), failCorestoreDatabaseBackup);
|
|
1190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5jb3Jlc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9ydW50aW1lLmNvcmVzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQU14QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUNMLCtCQUErQixFQUMvQiwyQkFBMkIsR0FDNUIsTUFBTSxrQkFBa0IsQ0FBQztBQU8xQixPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLG9DQUFvQyxHQUNyQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsNEJBQTRCLEVBQzVCLGVBQWUsR0FDaEIsTUFBTSw0QkFBNEIsQ0FBQztBQUlwQyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3RELFFBQVEsRUFBRSw0QkFBNEI7SUFDdEMsYUFBYSxFQUFFLGlDQUFpQztDQUN4QyxDQUFDLENBQUM7QUFDWixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyx1QkFBZ0MsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyw0QkFBcUMsQ0FBQztBQUN4RixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxxQkFBOEIsQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxZQUFxQixDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUQsdUJBQXVCLEVBQUUsR0FBRztJQUM1Qix3QkFBd0IsRUFBRSxHQUFHO0lBQzdCLHNCQUFzQixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDM0MsNEJBQTRCLEVBQUUsQ0FB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RUFBRSxDQUFDO1lBQ2xFLFNBQVMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztrQkFDOUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2tCQUNwQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDbEMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNiLENBQUM7YUFBTSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUk7ZUFDcEMsS0FBSyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTTtlQUMzQixRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7ZUFDdEQsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2VBQ3RELFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFFLElBQUksSUFBSSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFFLElBQUksSUFBSTtlQUM1RCxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xFLFNBQVMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztrQkFDOUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2tCQUNyQyxDQUFDLENBQUMsUUFBUSxDQUFD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
|