Skip to content

Commit

Permalink
feat(data-store): initialize DB using migrations
Browse files Browse the repository at this point in the history
fixes #676
  • Loading branch information
mirceanis committed Aug 26, 2021
1 parent 38cd0ae commit 48f3926
Show file tree
Hide file tree
Showing 13 changed files with 440 additions and 30 deletions.
17 changes: 10 additions & 7 deletions __tests__/localAgent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,22 @@ import {
import { MessageHandler } from '../packages/message-handler/src'
import { KeyManager } from '../packages/key-manager/src'
import { DIDManager, AliasDiscoveryProvider } from '../packages/did-manager/src'
import { createConnection, Connection } from 'typeorm'
import { DIDResolverPlugin } from '../packages/did-resolver/src'
import { JwtMessageHandler } from '../packages/did-jwt/src'
import { CredentialIssuer, ICredentialIssuer, W3cMessageHandler } from '../packages/credential-w3c/src'
import { EthrDIDProvider } from '../packages/did-provider-ethr/src'
import { WebDIDProvider } from '../packages/did-provider-web/src'
import { KeyDIDProvider } from '../packages/did-provider-key/src'
import { DIDComm, DIDCommMessageHandler, IDIDComm } from '../packages/did-comm/src'
import { DIDCommHttpTransport } from '../packages/did-comm/src/transports/transports'
import { DIDComm, DIDCommMessageHandler, IDIDComm, DIDCommHttpTransport } from '../packages/did-comm/src'
import {
SelectiveDisclosure,
ISelectiveDisclosure,
SdrMessageHandler,
} from '../packages/selective-disclosure/src'
import { KeyManagementSystem, SecretBox } from '../packages/kms-local/src'
import { IDIDDiscovery, DIDDiscovery } from '../packages/did-discovery/src'
import { getDidKeyResolver } from '../packages/did-provider-key/src'

import {
Entities,
KeyStore,
Expand All @@ -34,11 +35,11 @@ import {
DataStore,
DataStoreORM,
ProfileDiscoveryProvider,
migrations,
} from '../packages/data-store/src'
import { getDidKeyResolver } from '../packages/did-provider-key/src'
import { IDIDDiscovery, DIDDiscovery } from '../packages/did-discovery/src'
import { FakeDidProvider, FakeDidResolver } from './utils/fake-did'
import { createConnection, Connection } from 'typeorm'

import { FakeDidProvider, FakeDidResolver } from './utils/fake-did'
import { Resolver } from 'did-resolver'
import { getResolver as ethrDidResolver } from 'ethr-did-resolver'
import { getResolver as webDidResolver } from 'web-did-resolver'
Expand Down Expand Up @@ -82,7 +83,9 @@ const setup = async (options?: IAgentOptions): Promise<boolean> => {
name: 'test',
type: 'sqlite',
database: databaseFile,
synchronize: true,
synchronize: false,
migrations: migrations,
migrationsRun: true,
logging: false,
entities: Entities,
})
Expand Down
6 changes: 4 additions & 2 deletions __tests__/localMemoryStoreAgent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import {
SdrMessageHandler,
} from '../packages/selective-disclosure/src'
import { KeyManagementSystem } from '../packages/kms-local/src'
import { Entities, IDataStoreORM, DataStore, DataStoreORM } from '../packages/data-store/src'
import { Entities, IDataStoreORM, DataStore, DataStoreORM, migrations } from '../packages/data-store/src'
import { getDidKeyResolver } from '../packages/did-provider-key/src'
import { FakeDidProvider, FakeDidResolver } from './utils/fake-did'

Expand Down Expand Up @@ -69,7 +69,9 @@ const setup = async (options?: IAgentOptions): Promise<boolean> => {
name: 'test',
type: 'sqlite',
database: databaseFile,
synchronize: true,
synchronize: false,
migrations: migrations,
migrationsRun:true,
logging: false,
entities: Entities,
})
Expand Down
10 changes: 6 additions & 4 deletions __tests__/restAgent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,13 @@ import {
import { MessageHandler } from '../packages/message-handler/src'
import { KeyManager } from '../packages/key-manager/src'
import { DIDManager, AliasDiscoveryProvider } from '../packages/did-manager/src'
import { createConnection, Connection } from 'typeorm'
import { DIDResolverPlugin } from '../packages/did-resolver/src'
import { JwtMessageHandler } from '../packages/did-jwt/src'
import { CredentialIssuer, ICredentialIssuer, W3cMessageHandler } from '../packages/credential-w3c/src'
import { EthrDIDProvider } from '../packages/did-provider-ethr/src'
import { WebDIDProvider } from '../packages/did-provider-web/src'
import { KeyDIDProvider } from '../packages/did-provider-key/src'
import { DIDComm, DIDCommMessageHandler, IDIDComm } from '../packages/did-comm/src'
import { DIDCommHttpTransport } from '../packages/did-comm/src/transports/transports'
import { DIDComm, DIDCommMessageHandler, IDIDComm, DIDCommHttpTransport } from '../packages/did-comm/src'
import {
SelectiveDisclosure,
ISelectiveDisclosure,
Expand All @@ -37,7 +35,9 @@ import {
DataStore,
DataStoreORM,
ProfileDiscoveryProvider,
migrations
} from '../packages/data-store/src'
import { createConnection, Connection } from 'typeorm'
import { AgentRestClient } from '../packages/remote-client/src'
import { AgentRouter, RequestWithAgentRouter, MessagingRouter } from '../packages/remote-server/src'
import { getDidKeyResolver } from '../packages/did-provider-key/src'
Expand Down Expand Up @@ -104,7 +104,9 @@ const setup = async (options?: IAgentOptions): Promise<boolean> => {
name: 'test',
type: 'sqlite',
database: databaseFile,
synchronize: true,
synchronize: false,
migrations: migrations,
migrationsRun: true,
logging: false,
entities: Entities,
})
Expand Down
5 changes: 4 additions & 1 deletion packages/cli/default/default.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,10 @@ dbConnection:
- type: sqlite
database:
$ref: /constants/databaseFile
synchronize: true
synchronize: false
migrationsRun: true
migrations:
$require: '@veramo/data-store?t=object#migrations'
logging: false
entities:
$require: '@veramo/data-store?t=object#Entities'
Expand Down
25 changes: 18 additions & 7 deletions packages/data-store/src/entities/identifier.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
import {
Entity,
Column,
Connection,
PrimaryColumn,
BaseEntity,
OneToMany,
ManyToMany,
CreateDateColumn,
UpdateDateColumn,
Index,
BeforeInsert,
BeforeUpdate,
} from 'typeorm'
import { Key } from './key'
import { Service } from './service'
import { Message } from './message'
import { Presentation } from './presentation'
import { Credential } from './credential'
import { Claim } from './claim'
import { Connection } from 'typeorm'

@Entity('identifier')
@Index(['alias', 'provider'], { unique: true })
Expand All @@ -26,23 +26,34 @@ export class Identifier extends BaseEntity {

@Column({ nullable: true })
//@ts-ignore
provider: string
provider?: string

@Column({ nullable: true })
//@ts-ignore
alias?: string

@CreateDateColumn({ select: false })
@BeforeInsert()
setSaveDate() {
this.saveDate = new Date()
this.updateDate = new Date()
}

@BeforeUpdate()
setUpdateDate() {
this.updateDate = new Date()
}

@Column({ select: false })
//@ts-ignore
saveDate: Date

@UpdateDateColumn({ select: false })
@Column({ select: false })
//@ts-ignore
updateDate: Date

@Column({ nullable: true })
//@ts-ignore
controllerKeyId: string
controllerKeyId?: string

@OneToMany((type) => Key, (key) => key.identifier)
//@ts-ignore
Expand Down
4 changes: 2 additions & 2 deletions packages/data-store/src/entities/key.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export class Key extends BaseEntity {
})
meta?: KeyMetadata | null

@ManyToOne((type) => Identifier, (identifier) => identifier.keys)
@ManyToOne((type) => Identifier, (identifier) => identifier?.keys)
//@ts-ignore
identifier: Identifier
identifier?: Identifier
}
16 changes: 14 additions & 2 deletions packages/data-store/src/entities/message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {
CreateDateColumn,
UpdateDateColumn,
BeforeInsert,
BeforeUpdate,
} from 'typeorm'
import { blake2bHex } from 'blakejs'
import { IMessage } from '@veramo/core'
Expand All @@ -34,11 +35,22 @@ export class Message extends BaseEntity {
//@ts-ignore
id: string

@CreateDateColumn({ select: false })
@BeforeInsert()
setSaveDate() {
this.saveDate = new Date()
this.updateDate = new Date()
}

@BeforeUpdate()
setUpdateDate() {
this.updateDate = new Date()
}

@Column({ select: false })
//@ts-ignore
saveDate: Date

@UpdateDateColumn({ select: false })
@Column({ select: false })
//@ts-ignore
updateDate: Date

Expand Down
4 changes: 2 additions & 2 deletions packages/data-store/src/entities/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export class Service extends BaseEntity {
@Column({ nullable: true })
description?: string

@ManyToOne((type) => Identifier, (identifier) => identifier.services)
@ManyToOne((type) => Identifier, (identifier) => identifier?.services)
//@ts-ignore
identifier: Identifier
identifier?: Identifier
}
4 changes: 2 additions & 2 deletions packages/data-store/src/identifier/did-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export class DIDStore extends AbstractDIDStore {
const result: IIdentifier = {
did: identifier.did,
controllerKeyId: identifier.controllerKeyId,
provider: identifier.provider,
provider: identifier.provider!!,
services: identifier.services,
keys: identifier.keys.map((k) => ({
kid: k.kid,
Expand Down Expand Up @@ -117,7 +117,7 @@ export class DIDStore extends AbstractDIDStore {
if (i.alias === null) {
delete i.alias
}
return i
return i as IIdentifier
})
}
}
Loading

0 comments on commit 48f3926

Please sign in to comment.