Index

src/auth/auth.module.ts

AUTH_VALIDATION_SCHEMA
Type : object
Default value : { OIDC: Joi.string().optional(), KEYCLOAK_INTERNAL_ISSUER_URL: Joi.when('OIDC', { then: Joi.string().required(), otherwise: Joi.string().optional(), }), KEYCLOAK_CLIENT_ID: Joi.when('OIDC', { then: Joi.string().required(), otherwise: Joi.string().optional(), }), JWT_SECRET: Joi.when('OIDC', { then: Joi.string().optional(), otherwise: Joi.string().required(), }), JWT_ISSUER: Joi.when('OIDC', { then: Joi.string().optional(), otherwise: Joi.string().optional().default('eudiplo-service'), }), JWT_EXPIRES_IN: Joi.when('OIDC', { then: Joi.string().optional(), otherwise: Joi.string().default('24h'), }), AUTH_CLIENT_SECRET: Joi.when('OIDC', { then: Joi.string().optional(), otherwise: Joi.string().required(), }), AUTH_CLIENT_ID: Joi.when('OIDC', { then: Joi.string().optional(), otherwise: Joi.string().required(), }), }

src/utils/mediaType/media-type.decorator.ts

ContentType
Default value : createParamDecorator( (data: unknown, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); return request.headers['accept'] as string | undefined; }, )

Decorator to extract the content type from the request headers. This decorator can be used to determine the media type of the request.

src/crypto/key/crypto/crypto.module.ts

CRYPTO_VALIDATION_SCHEMA
Type : object
Default value : { CRYPTO_ALG: Joi.string().valid('ES256').default('ES256'), }

src/database/database.module.ts

DB_VALIDATION_SCHEMA
Type : object
Default value : { DB_TYPE: Joi.string().valid('sqlite', 'postgres').default('sqlite'), DB_HOST: Joi.string().when('DB_TYPE', { is: 'sqlite', then: Joi.optional(), otherwise: Joi.required(), }), DB_PORT: Joi.number().when('DB_TYPE', { is: 'sqlite', then: Joi.optional(), otherwise: Joi.required(), }), DB_USERNAME: Joi.string().when('DB_TYPE', { is: 'sqlite', then: Joi.optional(), otherwise: Joi.required(), }), DB_PASSWORD: Joi.string().when('DB_TYPE', { is: 'sqlite', then: Joi.optional(), otherwise: Joi.required(), }), DB_DATABASE: Joi.string().when('DB_TYPE', { is: 'sqlite', then: Joi.optional(), otherwise: Joi.required(), }), }

src/crypto/key/crypto/ed25519.ts

ED25519
Type : CryptoImplementation
Default value : { alg: 'EdDSA', async generateKeyPair() { const keyPair = await crypto.webcrypto.subtle.generateKey( { name: 'EdDSA', namedCurve: 'Ed25519', }, true, ['sign', 'verify'], ); const publicKey = await crypto.webcrypto.subtle.exportKey( 'jwk', keyPair.publicKey, ); const privateKey = await crypto.webcrypto.subtle.exportKey( 'jwk', keyPair.privateKey, ); return { publicKey, privateKey }; }, async getSigner(privateKeyJWK: object) { const privateKey = await crypto.webcrypto.subtle.importKey( 'jwk', privateKeyJWK, { name: 'EdDSA', namedCurve: 'Ed25519', }, false, ['sign'], ); return async (data: string) => { const signature = await crypto.webcrypto.subtle.sign( 'EdDSA', privateKey, new TextEncoder().encode(data), ); return Buffer.from(signature).toString('base64url'); }; }, async getVerifier(publicKeyJWK: object) { const publicKey = await crypto.webcrypto.subtle.importKey( 'jwk', publicKeyJWK, { name: 'EdDSA', namedCurve: 'Ed25519', }, false, ['verify'], ); return async (data: string, signatureBase64url: string) => { const signature = Buffer.from(signatureBase64url, 'base64url'); const isVerified = await crypto.webcrypto.subtle.verify( 'EdDSA', publicKey, signature, new TextEncoder().encode(data), ); return isVerified; }; }, }

src/auth/public.decorator.ts

IS_PUBLIC_KEY
Type : string
Default value : 'isPublic'
Public
Default value : () => SetMetadata(IS_PUBLIC_KEY, true)

src/issuer/issuer.module.ts

ISSUER_VALIDATION_SCHEMA
Type : object
Default value : { PUBLIC_URL: Joi.string(), }

src/crypto/key/key.module.ts

KEY_VALIDATION_SCHEMA
Type : object
Default value : { KM_TYPE: Joi.string().valid('file', 'vault').default('file'), // Vault-related config VAULT_URL: Joi.string().uri().when('KM_TYPE', { is: 'vault', then: Joi.required(), otherwise: Joi.optional(), }), VAULT_TOKEN: Joi.string().when('KM_TYPE', { is: 'vault', then: Joi.required(), otherwise: Joi.optional(), }), }

src/registrar/registrar.module.ts

REGISTRAR_VALIDATION_SCHEMA
Type : object
Default value : { REGISTRAR_URL: Joi.string(), REGISTRAR_OIDC_URL: Joi.string().when('REGISTRAR_URL', { is: Joi.exist(), then: Joi.required(), }), REGISTRAR_OIDC_CLIENT_ID: Joi.string().when('REGISTRAR_URL', { is: Joi.exist(), then: Joi.required(), }), REGISTRAR_OIDC_CLIENT_SECRET: Joi.string().when('REGISTRAR_URL', { is: Joi.exist(), then: Joi.required(), }), }

Validation schema for the registrar module. Defines the required environment variables and their types.

src/utils/logger/session-logger.decorator.ts

SESSION_LOGGER_KEY
Type : string
Default value : 'session-logger'

Key for session logger metadata.

SessionLogger
Default value : ( sessionIdParam: string, flowType: 'OID4VCI' | 'OID4VP', ) => SetMetadata(SESSION_LOGGER_KEY, { sessionIdParam, flowType })

Decorator to mark methods that should have session-based logging

src/session/session.module.ts

SESSION_VALIDATION_SCHEMA
Type : object
Default value : { SESSION_TIDY_UP_INTERVAL: Joi.number().default(60 * 60), // default to every hour SESSION_TTL: Joi.number().default(24 * 60 * 60), // default to 24 hours }

Module for managing user sessions.

src/session/session.decorator.ts

SessionEntity
Default value : createParamDecorator( (data: unknown, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); return request.session as Session; }, )

src/auth/token.decorator.ts

Token
Default value : createParamDecorator( (data: unknown, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); return request.user as TokenPayload; // Access the token payload on the request object }, )

results matching ""

    No results matching ""