Skip to content

Commit

Permalink
Merge pull request #121 from hypersign-protocol/dynamicdb-cli
Browse files Browse the repository at this point in the history
Dynamicdb cli
  • Loading branch information
Vishwas1 authored Nov 30, 2023
2 parents ed218e0 + ea9c8c8 commit 544ec46
Show file tree
Hide file tree
Showing 20 changed files with 38,866 additions and 37,539 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,6 @@ Nest is [MIT licensed](LICENSE).
```
```


sudo nginx -s stop && sudo nginx
12 changes: 0 additions & 12 deletions src/app-auth/app-auth.module.ts

This file was deleted.

5 changes: 1 addition & 4 deletions src/credential/credential.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ import {
} from '@nestjs/common';
import { CredentialService } from './services/credential.service';
import { CredentialController } from './controllers/credential.controller';
import { MongooseModule } from '@nestjs/mongoose';
import { Credential, CredentialSchema } from './schemas/credntial.schema';
import { CredentialSSIService } from './services/credential.ssi.service';
import { EdvModule } from 'src/edv/edv.module';
import { HidWalletModule } from 'src/hid-wallet/hid-wallet.module';
Expand All @@ -18,10 +16,9 @@ import { WhitelistSSICorsMiddleware } from 'src/utils/middleware/cors.middleware
import { TrimMiddleware } from 'src/utils/middleware/trim.middleware';
import { credentialProviders } from './providers/credential.provider';
import { databaseProviders } from '../mongoose/tenant-mongoose-connections';
import { AppAuthModule } from 'src/app-auth/app-auth.module';

@Module({
imports: [EdvModule, HidWalletModule, DidModule, AppAuthModule],
imports: [EdvModule, HidWalletModule, DidModule],
controllers: [CredentialController],
providers: [
CredentialService,
Expand Down
3 changes: 2 additions & 1 deletion src/credential/dto/create-credential.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { ValidateVerificationMethodId } from 'src/utils/customDecorator/vmId.dec
import { IsDid } from 'src/utils/customDecorator/did.decorator';
import { IsSchemaId } from 'src/utils/customDecorator/schemaId.deceorator';
import { IsVcId } from 'src/utils/customDecorator/vc.decorator';
import { subjectDID } from 'src/utils/customDecorator/SubjectDid.decorator';

export enum Namespace {
testnet = 'testnet',
Expand All @@ -36,7 +37,7 @@ export class CreateCredentialDto {
})
@IsString()
@IsNotEmpty()
@IsDid()
@subjectDID()
subjectDid: string;
@ApiProperty({
name: 'issuerDid',
Expand Down
5 changes: 1 addition & 4 deletions src/credential/services/credential.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,7 @@ import { DidRepository } from 'src/did/repository/did.repository';
import { HypersignDID, HypersignVerifiableCredential } from 'hs-ssi-sdk';
import { VerifyCredentialDto } from '../dto/verify-credential.dto';
import { RegisterCredentialStatusDto } from '../dto/register-credential.dto';
import {
getAppVault,
getAppMenemonic,
} from 'src/app-auth/services/app-vault.service';
import { getAppVault, getAppMenemonic } from '../../utils/app-vault-service';

@Injectable()
export class CredentialService {
Expand Down
1 change: 0 additions & 1 deletion src/did/controllers/did.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ import { RegisterDidDto } from '../dto/register-did.dto';
import { IKeyType } from 'hs-ssi-sdk';
import { AtLeastOneParamPipe } from 'src/utils/Pipes/atleastOneParam.pipe';
import { AddVMResponse, AddVerificationMethodDto } from '../dto/addVm.dto';

@UseFilters(AllExceptionsFilter)
@ApiTags('Did')
@Controller('did')
Expand Down
5 changes: 3 additions & 2 deletions src/did/did.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ import { WhitelistSSICorsMiddleware } from 'src/utils/middleware/cors.middleware
import { TrimMiddleware } from 'src/utils/middleware/trim.middleware';
import { databaseProviders } from '../mongoose/tenant-mongoose-connections';
import { didProviders } from './providers/did.provider';
import { AppAuthModule } from 'src/app-auth/app-auth.module';
import { JwtStrategy } from '../utils/jwt.strategy';
@Module({
imports: [EdvModule, HidWalletModule, AppAuthModule],
imports: [EdvModule, HidWalletModule],
controllers: [DidController],
providers: [
JwtStrategy,
DidService,
DidRepository,
DidMetaDataRepo,
Expand Down
38 changes: 19 additions & 19 deletions src/did/dto/register-did.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,26 +95,26 @@ export class RegisterDidDto {
}) // this is to validate if did is generated using empty namespace
verificationMethodId?: string;

// @ApiProperty({
// description: "IClientSpec 'eth-personalSign' or 'cosmos-ADR036'",
// example: 'eth-personalSign',
// name: 'clientSpec',
// required: false,
// })
// @IsOptional()
// @IsEnum(IClientSpec)
// clientSpec?: IClientSpec;
@ApiProperty({
description: "IClientSpec 'eth-personalSign' or 'cosmos-ADR036'",
example: 'eth-personalSign',
name: 'clientSpec',
required: false,
})
@IsOptional()
@IsEnum(IClientSpec)
clientSpec?: IClientSpec | undefined;

// @ApiProperty({
// description: 'Signature for clientSpec',
// example: 'afafljagahgp9agjagknaglkj/kagka=',
// name: 'signature',
// required: false,
// })
// @ValidateIf((o, value) => o.clientSpec !== undefined)
// @IsNotEmpty()
// @IsString()
// signature?: string;
@ApiProperty({
description: 'Signature for clientSpec',
example: 'afafljagahgp9agjagknaglkj/kagka=',
name: 'signature',
required: false,
})
@ValidateIf((o, value) => o.clientSpec !== undefined)
@IsNotEmpty()
@IsString()
signature?: string;

@ApiProperty({
description: 'Sign Info',
Expand Down
9 changes: 2 additions & 7 deletions src/did/services/did.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,7 @@ import { RegistrationStatus } from '../schemas/did.schema';
import { RegisterDidDto } from '../dto/register-did.dto';
import { Did as IDidDto } from '../schemas/did.schema';
import { AddVerificationMethodDto } from '../dto/addVm.dto';
import {
getAppVault,
getAppMenemonic,
} from 'src/app-auth/services/app-vault.service';
import { getAppVault, getAppMenemonic } from '../../utils/app-vault-service';
import { ConfigService } from '@nestjs/config';

@Injectable({ scope: Scope.REQUEST })
Expand All @@ -47,7 +44,6 @@ export class DidService {
// TODO: need to fix this once ed25519 is finished.
async createByClientSpec(createDidDto: CreateDidDto, appDetail) {
Logger.log('createByClientSpec() method: starts....', 'DidService');

let methodSpecificId = createDidDto.methodSpecificId;
const publicKey = createDidDto.options?.publicKey;
const chainId = createDidDto.options.chainId;
Expand Down Expand Up @@ -159,7 +155,7 @@ export class DidService {
createDidDto: CreateDidDto,
appDetail,
): Promise<CreateDidResponse> {
Logger.log('createByClientSpec() method: starts....', 'DidService');
Logger.log('create() method: starts....', 'DidService');

try {
const methodSpecificId = createDidDto.methodSpecificId;
Expand Down Expand Up @@ -354,7 +350,6 @@ export class DidService {
const didData = await this.didRepositiory.findOne({
did: didDocument['id'],
});

if (!didData) {
throw new NotFoundException([didDocument['id'] + ' not found']);
}
Expand Down
2 changes: 1 addition & 1 deletion src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import * as path from 'path';
import * as express from 'express';
// eslint-disable-next-line
const hidWallet = require('hid-hd-wallet');
import { Bip39, EnglishMnemonic } from '@cosmjs/crypto';
import { EnglishMnemonic } from '@cosmjs/crypto';
import { Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { EdvClientKeysManager } from './edv/services/edv.singleton';
Expand Down
3 changes: 1 addition & 2 deletions src/presentation/presentation.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,13 @@ import { MongooseModule } from '@nestjs/mongoose';
import { PresentationTemplateRepository } from './repository/presentation-template.repository';
import { HidWalletService } from 'src/hid-wallet/services/hid-wallet.service';
import { DidModule } from 'src/did/did.module';
import { AppAuthModule } from 'src/app-auth/app-auth.module';
import { WhitelistSSICorsMiddleware } from 'src/utils/middleware/cors.middleware';
import { TrimMiddleware } from 'src/utils/middleware/trim.middleware';
import { presentationTemplateProviders } from './providers/presentation.provider';
import { databaseProviders } from '../mongoose/tenant-mongoose-connections';

@Module({
imports: [DidModule, AppAuthModule],
imports: [DidModule],
controllers: [PresentationTempleteController, PresentationController],
providers: [
PresentationService,
Expand Down
2 changes: 1 addition & 1 deletion src/presentation/services/presentation.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { ConfigService } from '@nestjs/config';
import { HidWalletService } from 'src/hid-wallet/services/hid-wallet.service';
import { DidRepository } from 'src/did/repository/did.repository';
import { VerifyPresentationDto } from '../dto/verify-presentation.dto';
import { getAppVault } from 'src/app-auth/services/app-vault.service';
import { getAppVault } from '../../utils/app-vault-service';
import { generateAppId } from 'src/utils/utils';
@Injectable()
export class PresentationService {
Expand Down
3 changes: 1 addition & 2 deletions src/schema/schema.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,12 @@ import { DidService } from 'src/did/services/did.service';
import { DidModule } from 'src/did/did.module';
import { SchemaRepository } from './repository/schema.repository';
import { WhitelistSSICorsMiddleware } from 'src/utils/middleware/cors.middleware';
import { AppAuthModule } from 'src/app-auth/app-auth.module';
import { TrimMiddleware } from 'src/utils/middleware/trim.middleware';
import { schemaProviders } from './providers/schema.provider';
import { databaseProviders } from '../mongoose/tenant-mongoose-connections';

@Module({
imports: [DidModule, AppAuthModule],
imports: [DidModule],
controllers: [SchemaController],
providers: [
SchemaService,
Expand Down
5 changes: 1 addition & 4 deletions src/schema/services/schema.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,7 @@ import { SchemaRepository } from '../repository/schema.repository';
import { Schemas } from '../schemas/schemas.schema';
import { RegisterSchemaDto } from '../dto/register-schema.dto';
import { Namespace } from 'src/did/dto/create-did.dto';
import {
getAppVault,
getAppMenemonic,
} from 'src/app-auth/services/app-vault.service';
import { getAppVault, getAppMenemonic } from '../../utils/app-vault-service';

@Injectable({ scope: Scope.REQUEST })
export class SchemaService {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Logger } from '@nestjs/common';
import { VaultWalletManager } from '../../edv/services/vaultWalletManager';
import { EdvClientManagerFactoryService } from '../../edv/services/edv.clientFactory';
import { VaultWalletManager } from '../edv/services/vaultWalletManager';
import { EdvClientManagerFactoryService } from '../edv/services/edv.clientFactory';

export async function getAppVault(kmsId, edvId) {
Logger.log('Inside getAppVault()', 'getAppVault');
Expand Down
38 changes: 38 additions & 0 deletions src/utils/customDecorator/SubjectDid.decorator.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import {
applyDecorators,
SetMetadata,
BadRequestException,
} from '@nestjs/common';

export const subjectDID = (): PropertyDecorator => {
return applyDecorators(
SetMetadata('isDid', true),
(target: object, propertyKey: string | symbol) => {
let original = target[propertyKey];
const descriptor: PropertyDescriptor = {
get: () => original,
set: (val: any) => {
if (val.trim() === '') {
throw new BadRequestException([
`${propertyKey.toString()} cannot be empty`,
]);
}

const did = val;
if (!did.includes('did:')) {
throw new BadRequestException([
`Invalid ${propertyKey.toString()}`,
]);
}
if (did.includes('.')) {
throw new BadRequestException([
`Invalid ${propertyKey.toString()}`,
]);
}
original = val;
},
};
Object.defineProperty(target, propertyKey, descriptor);
},
);
};
File renamed without changes.
19 changes: 16 additions & 3 deletions src/utils/middleware/cors.middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,14 @@ export class WhitelistSSICorsMiddleware implements NestMiddleware {
'WhitelistSSICorsMiddleware: checking if call is form whitelisted domain starts',
'Middleware',
);
const origin = req.header('Origin') || req.header('Referer');
let referer = req.header('Referer');

// Extract the origin
if (referer) {
const referalUrl = new URL(referer);
referer = `${referalUrl.protocol}//${referalUrl.host}`;
}
const origin = req.header('Origin') || referer;

Logger.debug(
`WhitelistSSICorsMiddleware: request is comming from ${origin}`,
Expand Down Expand Up @@ -44,7 +51,14 @@ export class WhitelistSSICorsMiddleware implements NestMiddleware {
]);
} else if (req.header('authorization')) {
const token = req.header('authorization').split(' ')[1];
const decoded = jwt.verify(token, process.env.JWT_SECRET);
let decoded;
try {
decoded = jwt.verify(token, process.env.JWT_SECRET);
} catch (e) {
Logger.error(`WhitelistSSICorsMiddleware: Error ${e}`, 'Middleware');

throw new UnauthorizedException([e]);
}

type App = {
appId?: string;
Expand Down Expand Up @@ -83,7 +97,6 @@ export class WhitelistSSICorsMiddleware implements NestMiddleware {
if (appInfo.subdomain != subdomain) {
throw new UnauthorizedException(['Invalid subdomain']);
}

if (!appInfo.whitelistedCors.includes('*')) {
if (!appInfo['whitelistedCors'].includes(origin)) {
throw new UnauthorizedException(['Origin mismatch']);
Expand Down
13 changes: 0 additions & 13 deletions src/utils/session/session.serializer.ts

This file was deleted.

Loading

0 comments on commit 544ec46

Please sign in to comment.