import { EncodingOptions } from "@znetstar/encode-tools/lib/EncodeTools"; export declare enum LogLevels { silly = "silly", debug = "debug", verbose = "verbose", info = "info", warn = "warn", error = "error" } export declare enum ExpressSessionDrivers { mongo = "mongo", redis = "redis" } export declare type PluginPath = [string, string] | string; export interface DBInitRecordBase { document: T; replace?: boolean; query?: unknown; } export declare type DBInitRecordMongo = DBInitRecordBase & { collection: string; }; export declare type DBInitRecordMongoose = DBInitRecordBase & { model: string; }; export declare type DBInitRecord = DBInitRecordMongo | DBInitRecordMongoose; export interface IConfig { defaultRpcEncodingOptions?: EncodingOptions; uploadTempDir?: string; /** * Externally facing hostname */ siteUri?: string; hostname?: string; emailHostname?: string; /** * A list of plugins to load, as paths */ plugins?: PluginPath[]; /** * URI to the MongoDB database used as a datastore */ mongoUri?: string; npmOptions?: any; redisUri?: string; authorizeGracePeriod?: number; expireTokenIn?: number; loadAutoPinnedIpfsFilesOnStart?: boolean; defaultScopeJoin?: string; expireRefreshTokenIn?: number; updateIdentityUponTokenRefresh?: boolean; expandHookNames?: boolean; serviceClientId?: string; serviceClientSecret?: string; serviceClientName?: string; serviceRedirectUri?: string; unauthorizedUserName?: string; unauthorizedGroups?: string[]; rootUsername?: string; rootPassword?: string; promptUnauthenticatedToLogin?: boolean; rootGroups?: string[]; cors?: unknown; /** * Port the RPC server will listen on */ port?: number; /** * Host the RPC will listen on */ host?: string; /** * Unix Socket the RPC will listen on. Overrides `port` and `host` */ unixSocket?: string; /** * Cache the result of `Resolver.resolve` in a capped collection */ enableCache?: boolean; /** * Size of the resolve cache (in bytes) */ cacheSize?: number; /** * Max documents in the resolve cache */ cacheMax?: number; /** * Amount of time to wait before invalidating the entry */ cacheExpireIn?: number; /** * Default scopes for unauthorized users */ unauthorizedScopes?: string[]; /** * Enable the HTTP Web Resolver */ enableWebResolver?: boolean; /** * Size of each "short" url generated (in characters). */ shortUrlSize?: number; /** * The number of resolvers MongoDB should query at once when attempting to match a location. */ rootResolverBatchSize?: number; /** * Passed to bcrypt */ saltRounds: number; /** * Max age for the express session */ expressSessionMaxAge?: number; /** * Secret for the express session. If left unset, will generate at runtime */ expressSessionSecret?: string; /** * Defult key size for the express session string */ expressSessionSecretSize?: number; expressSessionDriver?: ExpressSessionDrivers; /** * List of drivers available */ drivers: string[]; /** * List of resolvers available */ resolverTypes: string[]; /** * List of entities available */ entityTypes: string[]; debugLogs?: boolean; logLevel?: LogLevels; autoLogEvents?: boolean; logErrors?: boolean; logListening?: boolean; cacheNon200HTTPResponses?: boolean; allowClientOverride?: boolean; deleteExistingAccessTokensUponTokenRefresh?: boolean; allowRootUserOverride?: boolean; allowUnauthorizedUserOverride?: boolean; dbInit?: DBInitRecord[]; allowGetTokenWithNoRedirectUri?: string[]; enableIpfs?: boolean; ipfsOptions?: { [name: string]: unknown; }; defaultIpfsAddOpts?: unknown; deleteEventsAfter?: number; eventsCollectionSize?: number; } export default IConfig;