Skip to main content
Glama
config.ts7.54 kB
// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors // SPDX-License-Identifier: Apache-2.0 import type { TypeName } from './types'; export const ExternalSecretSystems = { aws_ssm_parameter_store: 'aws_ssm_parameter_store', } as const; export type ExternalSecretSystem = keyof typeof ExternalSecretSystems; export type ExternalSecretPrimitive = string | boolean | number; export type ExternalSecretPrimitiveType = 'string' | 'boolean' | 'number'; export type ExternalSecret<T extends ExternalSecretPrimitive = ExternalSecretPrimitive> = { system: ExternalSecretSystem; key: string; type: TypeName<T>; }; export type ValueOrExternalSecret<T extends ExternalSecretPrimitive> = T | ExternalSecret<T>; export type StringMap = { [key: string]: string }; export interface MedplumSourceInfraConfig { name: ValueOrExternalSecret<string>; stackName: ValueOrExternalSecret<string>; accountNumber: ValueOrExternalSecret<string>; region: string; domainName: ValueOrExternalSecret<string>; vpcId: ValueOrExternalSecret<string>; apiPort: ValueOrExternalSecret<number>; apiDomainName: ValueOrExternalSecret<string>; apiSslCertArn: ValueOrExternalSecret<string>; apiInternetFacing?: ValueOrExternalSecret<boolean>; apiWafIpSetArn: ValueOrExternalSecret<string>; appDomainName: ValueOrExternalSecret<string>; appSslCertArn: ValueOrExternalSecret<string>; appApiProxy?: ValueOrExternalSecret<boolean>; appWafIpSetArn: ValueOrExternalSecret<string>; appLoggingBucket?: ValueOrExternalSecret<string>; appLoggingPrefix?: ValueOrExternalSecret<string>; storageBucketName: ValueOrExternalSecret<string>; storageDomainName: ValueOrExternalSecret<string>; storageSslCertArn: ValueOrExternalSecret<string>; signingKeyId: ValueOrExternalSecret<string>; storagePublicKey: ValueOrExternalSecret<string>; storageWafIpSetArn: ValueOrExternalSecret<string>; storageLoggingBucket?: ValueOrExternalSecret<string>; storageLoggingPrefix?: ValueOrExternalSecret<string>; baseUrl: ValueOrExternalSecret<string>; maxAzs: ValueOrExternalSecret<number>; rdsInstances: ValueOrExternalSecret<number>; rdsInstanceType: ValueOrExternalSecret<string>; rdsInstanceVersion?: ValueOrExternalSecret<string>; rdsSecretsArn?: ValueOrExternalSecret<string>; rdsReaderInstanceType?: ValueOrExternalSecret<string>; rdsProxyEnabled?: ValueOrExternalSecret<boolean>; rdsClusterParameters?: StringMap; rdsAutoMinorVersionUpgrade?: ValueOrExternalSecret<boolean>; cacheNodeType?: ValueOrExternalSecret<string>; cacheSecurityGroupId?: ValueOrExternalSecret<string>; desiredServerCount: ValueOrExternalSecret<number>; serverImage: ValueOrExternalSecret<string>; serverMemory: ValueOrExternalSecret<number>; serverCpu: ValueOrExternalSecret<number>; loadBalancerSecurityGroupId?: ValueOrExternalSecret<string>; loadBalancerLoggingBucket?: ValueOrExternalSecret<string>; loadBalancerLoggingPrefix?: ValueOrExternalSecret<string>; clamscanEnabled: ValueOrExternalSecret<boolean>; clamscanLoggingBucket: ValueOrExternalSecret<string>; clamscanLoggingPrefix: ValueOrExternalSecret<string>; skipDns?: ValueOrExternalSecret<boolean>; hostedZoneName?: ValueOrExternalSecret<string>; wafLogGroupName?: ValueOrExternalSecret<string>; wafLogGroupCreate?: ValueOrExternalSecret<boolean>; additionalContainers?: { name: ValueOrExternalSecret<string>; image: ValueOrExternalSecret<string>; cpu?: ValueOrExternalSecret<number>; memory?: ValueOrExternalSecret<number>; essential?: ValueOrExternalSecret<boolean>; command?: ValueOrExternalSecret<string>[]; environment?: { [key: string]: ValueOrExternalSecret<string>; }; }[]; containerRegistryCredentialsSecretArn?: ValueOrExternalSecret<string>; containerInsightsV2?: ValueOrExternalSecret<'enabled' | 'disabled' | 'enhanced'>; cloudTrailAlarms?: { logGroupName: ValueOrExternalSecret<string>; logGroupCreate?: ValueOrExternalSecret<boolean>; snsTopicArn?: ValueOrExternalSecret<string>; snsTopicName?: ValueOrExternalSecret<string>; }; fargateAutoScaling?: { minCapacity: ValueOrExternalSecret<number>; maxCapacity: ValueOrExternalSecret<number>; targetUtilizationPercent: ValueOrExternalSecret<number>; scaleInCooldown: ValueOrExternalSecret<number>; scaleOutCooldown: ValueOrExternalSecret<number>; }; environment?: StringMap; rdsIdsMajorVersionSuffix?: ValueOrExternalSecret<boolean>; rdsPersistentParameterGroups?: ValueOrExternalSecret<boolean>; fireLens?: { enabled: true; logDriverConfig?: { options?: { [key: string]: ValueOrExternalSecret<string>; }; secretOptions?: { [key: string]: ValueOrExternalSecret<string>; }; }; logRouterConfig: { type: 'fluentbit' | 'fluentd'; options?: Record<string, unknown>; }; environment?: { [key: string]: ValueOrExternalSecret<string>; }; }; } export interface MedplumInfraConfig { name: string; stackName: string; accountNumber: string; region: string; domainName: string; vpcId: string; apiPort: number; apiDomainName: string; apiSslCertArn: string; apiInternetFacing?: boolean; apiWafIpSetArn?: string; appDomainName: string; appSslCertArn: string; appApiProxy?: boolean; appWafIpSetArn?: string; appLoggingBucket?: string; appLoggingPrefix?: string; storageBucketName: string; storageDomainName: string; storageSslCertArn: string; signingKeyId: string; storagePublicKey: string; storageWafIpSetArn?: string; storageLoggingBucket?: string; storageLoggingPrefix?: string; baseUrl: string; maxAzs: number; rdsInstances: number; rdsInstanceType: string; rdsInstanceVersion?: string; rdsClusterParameters?: StringMap; rdsAutoMinorVersionUpgrade?: boolean; rdsSecretsArn?: string; rdsReaderInstanceType?: string; rdsProxyEnabled?: boolean; cacheNodeType?: string; cacheSecurityGroupId?: string; desiredServerCount: number; serverImage: string; serverMemory: number; serverCpu: number; loadBalancerSecurityGroupId?: string; loadBalancerLoggingBucket?: string; loadBalancerLoggingPrefix?: string; clamscanEnabled: boolean; clamscanLoggingBucket: string; clamscanLoggingPrefix: string; skipDns?: boolean; hostedZoneName?: string; wafLogGroupName?: string; wafLogGroupCreate?: boolean; additionalContainers?: { name: string; image: string; cpu?: number; memory?: number; essential?: boolean; command?: string[]; environment?: { [key: string]: string; }; }[]; containerRegistryCredentialsSecretArn?: string; containerInsightsV2?: 'enabled' | 'disabled' | 'enhanced'; cloudTrailAlarms?: { logGroupName: string; logGroupCreate?: boolean; snsTopicArn?: string; snsTopicName?: string; }; fargateAutoScaling?: { minCapacity: number; maxCapacity: number; targetUtilizationPercent: number; scaleInCooldown: number; scaleOutCooldown: number; }; environment?: StringMap; rdsIdsMajorVersionSuffix?: boolean; rdsPersistentParameterGroups?: boolean; fireLens?: { enabled: true; logDriverConfig?: { options?: { [key: string]: string; }; secretOptions?: { [key: string]: string; }; }; logRouterConfig: { type: 'fluentbit' | 'fluentd'; options?: Record<string, unknown>; }; environment?: { [key: string]: string; }; }; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/medplum/medplum'

If you have feedback or need assistance with the MCP directory API, please join our Discord server