@cheqd/studio 3.13.1-develop.1 → 3.14.0-develop.2

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 (73) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +4 -1
  3. package/dist/app.js.map +1 -1
  4. package/dist/controllers/api/account.d.ts +2 -2
  5. package/dist/controllers/api/account.js +2 -2
  6. package/dist/controllers/api/accreditation.d.ts.map +1 -1
  7. package/dist/controllers/api/accreditation.js +1 -0
  8. package/dist/controllers/api/accreditation.js.map +1 -1
  9. package/dist/controllers/api/credential.d.ts +166 -16
  10. package/dist/controllers/api/credential.d.ts.map +1 -1
  11. package/dist/controllers/api/credential.js +221 -97
  12. package/dist/controllers/api/credential.js.map +1 -1
  13. package/dist/controllers/validator/credential-status.d.ts +1 -1
  14. package/dist/controllers/validator/credential-status.d.ts.map +1 -1
  15. package/dist/controllers/validator/validator.d.ts +2 -1
  16. package/dist/controllers/validator/validator.d.ts.map +1 -1
  17. package/dist/database/entities/issued-credential.entity.d.ts +42 -0
  18. package/dist/database/entities/issued-credential.entity.d.ts.map +1 -0
  19. package/dist/database/entities/issued-credential.entity.js +131 -0
  20. package/dist/database/entities/issued-credential.entity.js.map +1 -0
  21. package/dist/database/migrations/1760533089289-studio-migrations.d.ts +7 -0
  22. package/dist/database/migrations/1760533089289-studio-migrations.d.ts.map +1 -0
  23. package/dist/database/migrations/1760533089289-studio-migrations.js +35 -0
  24. package/dist/database/migrations/1760533089289-studio-migrations.js.map +1 -0
  25. package/dist/database/migrations/1760533089389-MigrateStudioCredentials.d.ts +20 -0
  26. package/dist/database/migrations/1760533089389-MigrateStudioCredentials.d.ts.map +1 -0
  27. package/dist/database/migrations/1760533089389-MigrateStudioCredentials.js +202 -0
  28. package/dist/database/migrations/1760533089389-MigrateStudioCredentials.js.map +1 -0
  29. package/dist/database/migrations/1760533089589-MigrateDockCredentials.d.ts +24 -0
  30. package/dist/database/migrations/1760533089589-MigrateDockCredentials.d.ts.map +1 -0
  31. package/dist/database/migrations/1760533089589-MigrateDockCredentials.js +205 -0
  32. package/dist/database/migrations/1760533089589-MigrateDockCredentials.js.map +1 -0
  33. package/dist/database/types/types.d.ts.map +1 -1
  34. package/dist/database/types/types.js +11 -0
  35. package/dist/database/types/types.js.map +1 -1
  36. package/dist/middleware/auth/routes/api/credential-auth.d.ts.map +1 -1
  37. package/dist/middleware/auth/routes/api/credential-auth.js +7 -0
  38. package/dist/middleware/auth/routes/api/credential-auth.js.map +1 -1
  39. package/dist/services/api/credentials.d.ts +40 -1
  40. package/dist/services/api/credentials.d.ts.map +1 -1
  41. package/dist/services/api/credentials.js +371 -7
  42. package/dist/services/api/credentials.js.map +1 -1
  43. package/dist/services/connectors/resource.d.ts +6 -1
  44. package/dist/services/connectors/resource.d.ts.map +1 -1
  45. package/dist/services/connectors/resource.js +7 -0
  46. package/dist/services/connectors/resource.js.map +1 -1
  47. package/dist/services/identity/abstract.d.ts +3 -1
  48. package/dist/services/identity/abstract.d.ts.map +1 -1
  49. package/dist/services/identity/abstract.js +6 -0
  50. package/dist/services/identity/abstract.js.map +1 -1
  51. package/dist/services/identity/index.d.ts +3 -1
  52. package/dist/services/identity/index.d.ts.map +1 -1
  53. package/dist/services/identity/index.js.map +1 -1
  54. package/dist/services/identity/providers/dock/identity.d.ts +1 -0
  55. package/dist/services/identity/providers/dock/identity.d.ts.map +1 -1
  56. package/dist/services/identity/providers/dock/identity.js +51 -15
  57. package/dist/services/identity/providers/dock/identity.js.map +1 -1
  58. package/dist/services/identity/providers/studio/postgres.d.ts +1 -0
  59. package/dist/services/identity/providers/studio/postgres.d.ts.map +1 -1
  60. package/dist/services/identity/providers/studio/postgres.js +38 -2
  61. package/dist/services/identity/providers/studio/postgres.js.map +1 -1
  62. package/dist/static/swagger-api.json +457 -47
  63. package/dist/types/credential-status.d.ts +7 -0
  64. package/dist/types/credential-status.d.ts.map +1 -1
  65. package/dist/types/credential.d.ts +57 -1
  66. package/dist/types/credential.d.ts.map +1 -1
  67. package/dist/types/swagger-api-types.d.ts +143 -20
  68. package/dist/types/swagger-api-types.d.ts.map +1 -1
  69. package/dist/types/swagger-api-types.js +143 -20
  70. package/dist/types/swagger-api-types.js.map +1 -1
  71. package/dist/types/validation.d.ts +0 -6
  72. package/dist/types/validation.d.ts.map +1 -1
  73. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issued-credential.entity.js","sourceRoot":"","sources":["../../../src/database/entities/issued-credential.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class StudioMigrations1760533089289 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1760533089289-studio-migrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1760533089289-studio-migrations.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/1760533089289-studio-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,6BAA8B,YAAW,kBAAkB;IACvE,IAAI,SAAmC;IAE1B,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAW1D"}
@@ -0,0 +1,35 @@
1
+ export class StudioMigrations1760533089289 {
2
+ name = 'StudioMigrations1760533089289';
3
+ async up(queryRunner) {
4
+ await queryRunner.query(`CREATE TABLE "issuedCredential" ("issuedCredentialId" character varying NOT NULL, "providerId" character varying NOT NULL, "providerCredentialId" character varying, "issuerId" character varying, "subjectId" character varying, "format" text NOT NULL, "category" text NOT NULL, "type" json NOT NULL, "status" text NOT NULL DEFAULT 'issued', "statusUpdatedAt" TIMESTAMP WITH TIME ZONE, "metadata" json, "credentialStatus" json, "issuedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "deprecated" boolean NOT NULL DEFAULT false, "customerId" uuid NOT NULL, CONSTRAINT "PK_8c349f31da1e65cb1d2e2d45eed" PRIMARY KEY ("issuedCredentialId"))`);
5
+ await queryRunner.query(`ALTER TABLE "issuedCredential" ADD CONSTRAINT "FK_7d767433d76851e3e78561d8e4c" FOREIGN KEY ("customerId") REFERENCES "customer"("customerId") ON DELETE CASCADE ON UPDATE NO ACTION`);
6
+ await queryRunner.query(`ALTER TABLE "issuedCredential" ADD CONSTRAINT "FK_66a8712fa70886764c7003ea9c8" FOREIGN KEY ("providerId") REFERENCES "credentialProvider"("providerId") ON DELETE NO ACTION ON UPDATE NO ACTION`);
7
+ await queryRunner.query(`
8
+ CREATE INDEX "IDX_issuedCredential_customerId" ON "issuedCredential" ("customerId");
9
+ `);
10
+ await queryRunner.query(`
11
+ CREATE INDEX "IDX_issuedCredential_providerId" ON "issuedCredential" ("providerId");
12
+ `);
13
+ await queryRunner.query(`
14
+ CREATE INDEX "IDX_issuedCredential_status" ON "issuedCredential" ("status");
15
+ `);
16
+ await queryRunner.query(`
17
+ CREATE INDEX "IDX_issuedCredential_issuerId" ON "issuedCredential" ("issuerId");
18
+ `);
19
+ await queryRunner.query(`
20
+ CREATE INDEX "IDX_issuedCredential_subjectId" ON "issuedCredential" ("subjectId");
21
+ `);
22
+ }
23
+ async down(queryRunner) {
24
+ // Drop indexes
25
+ await queryRunner.query(`DROP INDEX IF EXISTS "IDX_issuedCredential_subjectId"`);
26
+ await queryRunner.query(`DROP INDEX IF EXISTS "IDX_issuedCredential_issuerId"`);
27
+ await queryRunner.query(`DROP INDEX IF EXISTS "IDX_issuedCredential_status"`);
28
+ await queryRunner.query(`DROP INDEX IF EXISTS "IDX_issuedCredential_providerId"`);
29
+ await queryRunner.query(`DROP INDEX IF EXISTS "IDX_issuedCredential_customerId"`);
30
+ await queryRunner.query(`ALTER TABLE "issuedCredential" DROP CONSTRAINT "FK_66a8712fa70886764c7003ea9c8"`);
31
+ await queryRunner.query(`ALTER TABLE "issuedCredential" DROP CONSTRAINT "FK_7d767433d76851e3e78561d8e4c"`);
32
+ await queryRunner.query(`DROP TABLE "issuedCredential"`);
33
+ }
34
+ }
35
+ //# sourceMappingURL=1760533089289-studio-migrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1760533089289-studio-migrations.js","sourceRoot":"","sources":["../../../src/database/migrations/1760533089289-studio-migrations.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,6BAA6B;IACzC,IAAI,GAAG,+BAA+B,CAAC;IAEhC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACvC,MAAM,WAAW,CAAC,KAAK,CACtB,mvBAAmvB,CACnvB,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACtB,qLAAqL,CACrL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACtB,iMAAiM,CACjM,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC;;GAEvB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;GAEvB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;GAEvB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;GAEvB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;GAEvB,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACzC,eAAe;QACf,MAAM,WAAW,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACjF,MAAM,WAAW,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAChF,MAAM,WAAW,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC9E,MAAM,WAAW,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAClF,MAAM,WAAW,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAClF,MAAM,WAAW,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;QAC3G,MAAM,WAAW,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;QAC3G,MAAM,WAAW,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC1D,CAAC;CACD"}
@@ -0,0 +1,20 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ /**
3
+ * Migrates existing Studio (Veramo) credentials from ResourceEntity to IssuedCredentialEntity
4
+ * This migration:
5
+ * 1. Finds all ResourceEntity records with resourceType='VerifiableCredential', 'VerifiableAccreditationToAccredit', or 'VerifiableAccreditationToAttest'
6
+ * 2. Resolves credential data from DID URLs via resolver
7
+ * 3. Creates corresponding IssuedCredentialEntity records with providerId='studio'
8
+ */
9
+ export declare class MigrateStudioCredentials1760533089389 implements MigrationInterface {
10
+ private readonly JWT_PROOF_TYPE;
11
+ private readonly RESOLVER_URL;
12
+ private readonly BATCH_SIZE;
13
+ up(queryRunner: QueryRunner): Promise<void>;
14
+ down(queryRunner: QueryRunner): Promise<void>;
15
+ /**
16
+ * Resolve credential from DID URL using the resolver
17
+ */
18
+ private resolveCredential;
19
+ }
20
+ //# sourceMappingURL=1760533089389-MigrateStudioCredentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1760533089389-MigrateStudioCredentials.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/1760533089389-MigrateStudioCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM1D;;;;;;GAMG;AACH,qBAAa,qCAAsC,YAAW,kBAAkB;IAC/E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4D;IACzF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAM;IAEpB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmK3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1D;;OAEG;YACW,iBAAiB;CA2B/B"}
@@ -0,0 +1,202 @@
1
+ import { ResourceEntity } from '../entities/resource.entity.js';
2
+ import { IssuedCredentialEntity } from '../entities/issued-credential.entity.js';
3
+ import { CredentialProviderEntity } from '../entities/credential-provider.entity.js';
4
+ /**
5
+ * Migrates existing Studio (Veramo) credentials from ResourceEntity to IssuedCredentialEntity
6
+ * This migration:
7
+ * 1. Finds all ResourceEntity records with resourceType='VerifiableCredential', 'VerifiableAccreditationToAccredit', or 'VerifiableAccreditationToAttest'
8
+ * 2. Resolves credential data from DID URLs via resolver
9
+ * 3. Creates corresponding IssuedCredentialEntity records with providerId='studio'
10
+ */
11
+ export class MigrateStudioCredentials1760533089389 {
12
+ JWT_PROOF_TYPE = 'JwtProof2020';
13
+ RESOLVER_URL = process.env.RESOLVER_URL || 'https://resolver.cheqd.net';
14
+ BATCH_SIZE = 50; // Process credentials in batches to avoid memory issues
15
+ async up(queryRunner) {
16
+ console.log('Starting Studio credentials migration...');
17
+ // Get Studio provider
18
+ const studioProvider = await queryRunner.manager.findOne(CredentialProviderEntity, {
19
+ where: { providerId: 'studio' },
20
+ });
21
+ if (!studioProvider) {
22
+ console.log('Studio provider not found, skipping credential migration');
23
+ return;
24
+ }
25
+ console.log(`Found Studio provider: ${studioProvider.providerId}`);
26
+ // Find all credential resources
27
+ const credentialResources = await queryRunner.manager.find(ResourceEntity, {
28
+ where: [
29
+ { resourceType: 'VerifiableCredential' },
30
+ { resourceType: 'VerifiableAccreditationToAccredit' },
31
+ { resourceType: 'VerifiableAccreditationToAttest' },
32
+ { resourceType: 'VerifiableAuthorizationForTrustChain' },
33
+ ],
34
+ relations: ['identifier', 'customer'],
35
+ });
36
+ console.log(`Found ${credentialResources.length} credential resources to migrate`);
37
+ if (credentialResources.length === 0) {
38
+ console.log('No credentials to migrate');
39
+ return;
40
+ }
41
+ let successCount = 0;
42
+ let skippedCount = 0;
43
+ let errorCount = 0;
44
+ const errors = [];
45
+ // Process credentials in batches
46
+ for (let i = 0; i < credentialResources.length; i += this.BATCH_SIZE) {
47
+ const batch = credentialResources.slice(i, i + this.BATCH_SIZE);
48
+ for (const resource of batch) {
49
+ try {
50
+ // Check if already migrated
51
+ const existing = await queryRunner.manager.findOne(IssuedCredentialEntity, {
52
+ where: {
53
+ providerId: studioProvider.providerId,
54
+ providerCredentialId: resource.resourceId,
55
+ },
56
+ });
57
+ if (existing) {
58
+ skippedCount++;
59
+ continue;
60
+ }
61
+ // Resolve credential from DID URL
62
+ const didUrl = `${resource.identifier.did}/resources/${resource.resourceId}`;
63
+ const credential = await this.resolveCredential(didUrl);
64
+ if (!credential) {
65
+ throw new Error(`Failed to resolve credential from ${didUrl}`);
66
+ }
67
+ // Determine format based on proof type
68
+ let format = 'jsonld';
69
+ if (credential.proof) {
70
+ if (typeof credential.proof === 'object' && 'type' in credential.proof) {
71
+ format = credential.proof.type === this.JWT_PROOF_TYPE ? 'jwt' : 'jsonld';
72
+ }
73
+ }
74
+ let category = 'credential';
75
+ if (resource.resourceType === 'VerifiableAccreditationToAccredit' ||
76
+ resource.resourceType === 'VerifiableAccreditationToAttest' ||
77
+ resource.resourceType === 'VerifiableAuthorizationForTrustChain') {
78
+ category = 'accreditation';
79
+ }
80
+ // Extract credential type
81
+ const type = Array.isArray(credential.type)
82
+ ? credential.type
83
+ : typeof credential.type === 'string'
84
+ ? [credential.type]
85
+ : ['VerifiableCredential'];
86
+ // Extract issuer DID
87
+ const issuerId = typeof credential.issuer === 'string' ? credential.issuer : credential.issuer?.id;
88
+ // Extract subject DID
89
+ const subjectId = credential.credentialSubject?.id;
90
+ // Parse dates
91
+ const issuedAt = credential.issuanceDate ? new Date(credential.issuanceDate) : resource.createdAt;
92
+ const expiresAt = credential.expirationDate ? new Date(credential.expirationDate) : undefined;
93
+ // Create IssuedCredentialEntity
94
+ const issuedCredential = queryRunner.manager.create(IssuedCredentialEntity, {
95
+ providerId: studioProvider.providerId,
96
+ format: format,
97
+ category: category,
98
+ type: type,
99
+ issuedAt: issuedAt,
100
+ customer: resource.customer,
101
+ providerCredentialId: resource.resourceId,
102
+ issuerId: issuerId,
103
+ subjectId: subjectId,
104
+ status: 'issued',
105
+ credentialStatus: credential.credentialStatus,
106
+ expiresAt: expiresAt,
107
+ metadata: {
108
+ migratedFrom: 'ResourceEntity',
109
+ schema: credential.credentialSchema,
110
+ proof: credential.proof,
111
+ resourceType: resource.resourceType,
112
+ didUrl: didUrl,
113
+ encrypted: resource.encrypted,
114
+ termsOfUse: credential.termsOfUse,
115
+ },
116
+ });
117
+ await queryRunner.manager.save(IssuedCredentialEntity, issuedCredential);
118
+ successCount++;
119
+ if (successCount % 10 === 0) {
120
+ console.log(` Migrated ${successCount} credentials so far...`);
121
+ }
122
+ }
123
+ catch (error) {
124
+ errorCount++;
125
+ const errorMessage = error instanceof Error ? error.message : String(error);
126
+ errors.push({
127
+ resourceId: resource.resourceId,
128
+ error: errorMessage,
129
+ });
130
+ console.error(` Error migrating credential ${resource.resourceId}:`, errorMessage);
131
+ // Continue with next credential
132
+ }
133
+ }
134
+ // Small delay between batches
135
+ if (i + this.BATCH_SIZE < credentialResources.length) {
136
+ await new Promise((resolve) => setTimeout(resolve, 500));
137
+ }
138
+ }
139
+ console.log(`\nMigration completed:`);
140
+ console.log(` Successfully migrated: ${successCount}`);
141
+ console.log(` Skipped (already migrated): ${skippedCount}`);
142
+ console.log(` Errors: ${errorCount}\n`);
143
+ console.log(` Total processed: ${successCount + skippedCount + errorCount}/${credentialResources.length}`);
144
+ if (errors.length > 0) {
145
+ console.log(`\nErrors encountered (first 10):`);
146
+ errors.slice(0, 10).forEach(({ resourceId, error }) => {
147
+ console.log(` - ${resourceId}: ${error}`);
148
+ });
149
+ if (errors.length > 10) {
150
+ console.log(` ... and ${errors.length - 10} more errors`);
151
+ }
152
+ }
153
+ }
154
+ async down(queryRunner) {
155
+ console.log('Rolling back Studio credentials migration...');
156
+ // Get Studio provider
157
+ const studioProvider = await queryRunner.manager.findOne(CredentialProviderEntity, {
158
+ where: { providerId: 'studio' },
159
+ });
160
+ if (!studioProvider) {
161
+ console.log('Studio provider not found, nothing to rollback');
162
+ return;
163
+ }
164
+ // Delete all IssuedCredentialEntity records that were migrated from ResourceEntity
165
+ const result = await queryRunner.manager
166
+ .createQueryBuilder()
167
+ .delete()
168
+ .from(IssuedCredentialEntity)
169
+ .where('providerId = :providerId', { providerId: studioProvider.providerId })
170
+ .andWhere("metadata->>'migratedFrom' = :migratedFrom", { migratedFrom: 'ResourceEntity' })
171
+ .execute();
172
+ console.log(`Rolled back ${result.affected} migrated credentials`);
173
+ }
174
+ /**
175
+ * Resolve credential from DID URL using the resolver
176
+ */
177
+ async resolveCredential(didUrl) {
178
+ try {
179
+ const response = await fetch(`${this.RESOLVER_URL}/${didUrl}`, {
180
+ headers: {
181
+ 'Content-Type': '*/*',
182
+ Accept: 'application/json',
183
+ },
184
+ });
185
+ if (!response.ok) {
186
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
187
+ }
188
+ const data = await response.json();
189
+ // Validate that we received a credential
190
+ if (!data || typeof data !== 'object') {
191
+ throw new Error('Invalid response from resolver');
192
+ }
193
+ return data;
194
+ }
195
+ catch (error) {
196
+ const errorMessage = error instanceof Error ? error.message : String(error);
197
+ console.error(` Failed to resolve ${didUrl}: ${errorMessage}`);
198
+ return null;
199
+ }
200
+ }
201
+ }
202
+ //# sourceMappingURL=1760533089389-MigrateStudioCredentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1760533089389-MigrateStudioCredentials.js","sourceRoot":"","sources":["../../../src/database/migrations/1760533089389-MigrateStudioCredentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ /**
3
+ * Migrates existing Dock credentials from Dock API to IssuedCredentialEntity
4
+ * This migration:
5
+ * 1. Finds all customers with active Dock provider configuration
6
+ * 2. Fetches credentials from Dock API for each customer
7
+ * 3. Creates corresponding IssuedCredentialEntity records
8
+ */
9
+ export declare class MigrateDockCredentials1760533089589 implements MigrationInterface {
10
+ private readonly DOCK_API_URL;
11
+ private secretBox;
12
+ up(queryRunner: QueryRunner): Promise<void>;
13
+ down(queryRunner: QueryRunner): Promise<void>;
14
+ /**
15
+ * Fetch credentials from Dock API for a customer
16
+ */
17
+ private fetchDockCredentials;
18
+ /**
19
+ * Decrypt API key manually to avoid circular dependency with ProviderService
20
+ * This replicates the decryption logic from ProviderService
21
+ */
22
+ private decryptApiKey;
23
+ }
24
+ //# sourceMappingURL=1760533089589-MigrateDockCredentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1760533089589-MigrateDockCredentials.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/1760533089589-MigrateDockCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAO1D;;;;;;GAMG;AACH,qBAAa,mCAAoC,YAAW,kBAAkB;IAC7E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IACjE,OAAO,CAAC,SAAS,CAAa;IAEjB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuK3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1D;;OAEG;YACW,oBAAoB;IA4BlC;;;OAGG;YACW,aAAa;CAG3B"}
@@ -0,0 +1,205 @@
1
+ import { IssuedCredentialEntity } from '../entities/issued-credential.entity.js';
2
+ import { CredentialProviderEntity } from '../entities/credential-provider.entity.js';
3
+ import { ProviderConfigurationEntity } from '../entities/provider-configuration.entity.js';
4
+ import { SecretBox } from '@veramo/kms-local';
5
+ /**
6
+ * Migrates existing Dock credentials from Dock API to IssuedCredentialEntity
7
+ * This migration:
8
+ * 1. Finds all customers with active Dock provider configuration
9
+ * 2. Fetches credentials from Dock API for each customer
10
+ * 3. Creates corresponding IssuedCredentialEntity records
11
+ */
12
+ export class MigrateDockCredentials1760533089589 {
13
+ DOCK_API_URL = 'https://api-testnet.truvera.io';
14
+ secretBox;
15
+ async up(queryRunner) {
16
+ console.log('Starting Dock credentials migration...');
17
+ this.secretBox = new SecretBox(process.env.EXTERNAL_DB_ENCRYPTION_KEY);
18
+ // Get Dock provider
19
+ const dockProvider = await queryRunner.manager.findOne(CredentialProviderEntity, {
20
+ where: { providerId: 'dock' },
21
+ });
22
+ if (!dockProvider) {
23
+ console.log('Dock provider not found, skipping credential migration');
24
+ return;
25
+ }
26
+ console.log(`Found Dock provider: ${dockProvider.providerId}`);
27
+ // Find all customers with Dock provider configuration
28
+ const dockConfigurations = await queryRunner.manager.find(ProviderConfigurationEntity, {
29
+ where: { providerId: dockProvider.providerId, active: true },
30
+ relations: ['customer'],
31
+ });
32
+ console.log(`Found ${dockConfigurations.length} customers with active Dock configuration`);
33
+ if (dockConfigurations.length === 0) {
34
+ console.log('No active Dock configurations to migrate');
35
+ return;
36
+ }
37
+ let totalSuccess = 0;
38
+ let totalSkipped = 0;
39
+ let totalErrors = 0;
40
+ const customerErrors = [];
41
+ // Process each customer's credentials
42
+ for (const config of dockConfigurations) {
43
+ try {
44
+ console.log(`\nProcessing customer: ${config.customer.customerId}...`);
45
+ // Decrypt API key manually to avoid circular dependency
46
+ const apiKey = await this.decryptApiKey(config.encryptedApiKey);
47
+ if (!apiKey) {
48
+ throw new Error('Failed to decrypt API key');
49
+ }
50
+ // Fetch credentials from Dock API
51
+ const credentials = await this.fetchDockCredentials(apiKey);
52
+ console.log(` Found ${credentials.length} credentials for customer ${config.customer.customerId}`);
53
+ let successCount = 0;
54
+ let skippedCount = 0;
55
+ let errorCount = 0;
56
+ for (const credential of credentials) {
57
+ try {
58
+ // Check if already migrated using Dock's credential ID
59
+ const existing = await queryRunner.manager.findOne(IssuedCredentialEntity, {
60
+ where: {
61
+ providerId: dockProvider.providerId,
62
+ providerCredentialId: credential.id,
63
+ },
64
+ });
65
+ if (existing) {
66
+ skippedCount++;
67
+ continue;
68
+ }
69
+ // Determine status
70
+ const status = credential.revoked ? 'revoked' : 'issued';
71
+ // Parse dates
72
+ const issuedAt = new Date(credential.createdAt);
73
+ const expiresAt = credential.expirationDate ? new Date(credential.expirationDate) : undefined;
74
+ // Handle credential type - default to 'VerifiableCredential' if empty
75
+ const credentialType = credential.type && credential.type.trim() !== '' ? credential.type : 'VerifiableCredential';
76
+ let category = 'credential';
77
+ if (credentialType.includes('Accreditation') || credentialType.includes('accreditation')) {
78
+ category = 'accreditation';
79
+ }
80
+ // Create IssuedCredentialEntity (using object initialization to avoid constructor issues)
81
+ const issuedCredential = queryRunner.manager.create(IssuedCredentialEntity, {
82
+ providerId: dockProvider.providerId,
83
+ format: 'jsonld', // Dock credentials are JSON-LD format
84
+ category: category,
85
+ type: [credentialType],
86
+ issuedAt: issuedAt,
87
+ customer: config.customer,
88
+ providerCredentialId: credential.id,
89
+ issuerId: credential.issuerKey.split('#')[0], // Extract DID from key reference
90
+ subjectId: credential.subjectRef,
91
+ status: status,
92
+ statusUpdatedAt: credential.revoked ? issuedAt : undefined,
93
+ credentialStatus: credential.revocationRegistry
94
+ ? {
95
+ id: credential.revocationRegistry,
96
+ index: credential.index,
97
+ }
98
+ : undefined,
99
+ expiresAt: expiresAt,
100
+ metadata: {
101
+ migratedFrom: 'DockAPI',
102
+ dockCredentialId: credential.id,
103
+ issuerKey: credential.issuerKey,
104
+ },
105
+ });
106
+ await queryRunner.manager.save(IssuedCredentialEntity, issuedCredential);
107
+ successCount++;
108
+ if (successCount % 10 === 0) {
109
+ console.log(` Migrated ${successCount} credentials so far...`);
110
+ }
111
+ }
112
+ catch (error) {
113
+ errorCount++;
114
+ console.error(` Error migrating credential ${credential.id}:`, error instanceof Error ? error.message : String(error));
115
+ // Continue with next credential
116
+ }
117
+ }
118
+ console.log(` Customer ${config.customer.customerId} completed:`);
119
+ console.log(` Successfully migrated: ${successCount}`);
120
+ console.log(` Skipped (already migrated): ${skippedCount}`);
121
+ console.log(` Errors: ${errorCount}`);
122
+ totalSuccess += successCount;
123
+ totalSkipped += skippedCount;
124
+ totalErrors += errorCount;
125
+ // Small delay between customers to avoid rate limiting
126
+ await new Promise((resolve) => setTimeout(resolve, 1000));
127
+ }
128
+ catch (error) {
129
+ const errorMessage = error instanceof Error ? error.message : String(error);
130
+ customerErrors.push({
131
+ customerId: config.customer.customerId,
132
+ error: errorMessage,
133
+ });
134
+ console.error(` Error processing customer ${config.customer.customerId}:`, errorMessage);
135
+ // Continue with next customer
136
+ }
137
+ }
138
+ console.log(`\nMigration completed:`);
139
+ console.log(` Total successfully migrated: ${totalSuccess}`);
140
+ console.log(` Total skipped (already migrated): ${totalSkipped}`);
141
+ console.log(` Total errors: ${totalErrors}`);
142
+ console.log(` Customers processed: ${dockConfigurations.length - customerErrors.length}/${dockConfigurations.length}`);
143
+ if (customerErrors.length > 0) {
144
+ console.log(`\nCustomer errors:`);
145
+ customerErrors.forEach(({ customerId, error }) => {
146
+ console.log(` - ${customerId}: ${error}`);
147
+ });
148
+ }
149
+ }
150
+ async down(queryRunner) {
151
+ console.log('Rolling back Dock credentials migration...');
152
+ // Get Dock provider
153
+ const dockProvider = await queryRunner.manager.findOne(CredentialProviderEntity, {
154
+ where: { providerId: 'dock' },
155
+ });
156
+ if (!dockProvider) {
157
+ console.log('Dock provider not found, nothing to rollback');
158
+ return;
159
+ }
160
+ // Delete all IssuedCredentialEntity records that were migrated from Dock API
161
+ const result = await queryRunner.manager
162
+ .createQueryBuilder()
163
+ .delete()
164
+ .from(IssuedCredentialEntity)
165
+ .where('providerId = :providerId', { providerId: dockProvider.providerId })
166
+ .andWhere("metadata->>'migratedFrom' = :migratedFrom", { migratedFrom: 'DockAPI' })
167
+ .execute();
168
+ console.log(`Rolled back ${result.affected} migrated credentials`);
169
+ }
170
+ /**
171
+ * Fetch credentials from Dock API for a customer
172
+ */
173
+ async fetchDockCredentials(apiKey) {
174
+ try {
175
+ const response = await fetch(`${this.DOCK_API_URL}/credentials`, {
176
+ method: 'GET',
177
+ headers: {
178
+ 'Content-Type': 'application/json',
179
+ Authorization: `Bearer ${apiKey}`,
180
+ },
181
+ });
182
+ if (!response.ok) {
183
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
184
+ }
185
+ const data = (await response.json());
186
+ // Validate response
187
+ if (!Array.isArray(data)) {
188
+ throw new Error('Invalid response from Dock API: expected array');
189
+ }
190
+ return data;
191
+ }
192
+ catch (error) {
193
+ const errorMessage = error instanceof Error ? error.message : String(error);
194
+ throw new Error(`Failed to fetch credentials from Dock API: ${errorMessage}`);
195
+ }
196
+ }
197
+ /**
198
+ * Decrypt API key manually to avoid circular dependency with ProviderService
199
+ * This replicates the decryption logic from ProviderService
200
+ */
201
+ async decryptApiKey(encryptedApiKey) {
202
+ return await this.secretBox.decrypt(encryptedApiKey);
203
+ }
204
+ }
205
+ //# sourceMappingURL=1760533089589-MigrateDockCredentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1760533089589-MigrateDockCredentials.js","sourceRoot":"","sources":["../../../src/database/migrations/1760533089589-MigrateDockCredentials.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/database/types/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAoDrC,MAAM,WAAW,gBAAgB;IAChC,KAAK,IAAI,UAAU,CAAC;CACpB;AAED,qBAAa,MAAO,YAAW,gBAAgB;IAC9C,KAAK,IAAI,UAAU;CAWnB;AAED,qBAAa,QAAS,YAAW,gBAAgB;IAChD,KAAK,IAAI,UAAU;CAoFnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/database/types/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAwDrC,MAAM,WAAW,gBAAgB;IAChC,KAAK,IAAI,UAAU,CAAC;CACpB;AAED,qBAAa,MAAO,YAAW,gBAAgB;IAC9C,KAAK,IAAI,UAAU;CAWnB;AAED,qBAAa,QAAS,YAAW,gBAAgB;IAChD,KAAK,IAAI,UAAU;CA2FnB"}
@@ -16,6 +16,7 @@ import { CoinEntity } from '../entities/coin.entity.js';
16
16
  import { SubscriptionEntity } from '../entities/subscription.entity.js';
17
17
  import { CredentialProviderEntity } from '../entities/credential-provider.entity.js';
18
18
  import { ProviderConfigurationEntity } from '../entities/provider-configuration.entity.js';
19
+ import { IssuedCredentialEntity } from '../entities/issued-credential.entity.js';
19
20
  import { CreatePaymentTable1695740345977 } from '../migrations/archive/CreatePaymentTable.js';
20
21
  import { CreateOperationTable1695740345977 } from '../migrations/archive/CreateOperationTable.js';
21
22
  import { CreateCustomersTable1683723285946 } from '../migrations/archive/CreateCustomersTable.js';
@@ -44,6 +45,9 @@ import { InsertFingerprintAPIKeyTable1746780465032 } from '../migrations/archive
44
45
  import { Cleanup1748331341024 } from '../migrations/custom/1748331341024-Cleanup.js';
45
46
  import { StudioMigrations1750427001486 } from '../migrations/1750427001486-studio-migrations.js';
46
47
  import { StudioMigrations1758011998054 } from '../migrations/1758011998054-studio-migrations.js';
48
+ import { StudioMigrations1760533089289 } from '../migrations/1760533089289-studio-migrations.js';
49
+ import { MigrateStudioCredentials1760533089389 } from '../migrations/1760533089389-MigrateStudioCredentials.js';
50
+ import { MigrateDockCredentials1760533089589 } from '../migrations/1760533089589-MigrateDockCredentials.js';
47
51
  dotenv.config();
48
52
  const { EXTERNAL_DB_CONNECTION_URL, EXTERNAL_DB_CERT } = process.env;
49
53
  export class Memory {
@@ -122,6 +126,12 @@ export class Postgres {
122
126
  Cleanup1748331341024,
123
127
  StudioMigrations1750427001486,
124
128
  StudioMigrations1758011998054,
129
+ // Add IssuedCredential table
130
+ StudioMigrations1760533089289,
131
+ // Migrate Studio credentials to IssuedCredential table
132
+ MigrateStudioCredentials1760533089389,
133
+ // Migrate Dock credentials to IssuedCredential table
134
+ MigrateDockCredentials1760533089589,
125
135
  ],
126
136
  entities: [
127
137
  ...Entities,
@@ -139,6 +149,7 @@ export class Postgres {
139
149
  SubscriptionEntity,
140
150
  CredentialProviderEntity,
141
151
  ProviderConfigurationEntity,
152
+ IssuedCredentialEntity,
142
153
  ],
143
154
  logging: ['error', 'info', 'warn'],
144
155
  });
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/database/types/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/database/types/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"credential-auth.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/auth/routes/api/credential-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,0BAA2B,SAAQ,gBAAgB;;CAgB/D"}
1
+ {"version":3,"file":"credential-auth.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/auth/routes/api/credential-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,0BAA2B,SAAQ,gBAAgB;;CAuB/D"}