/** * Copyright (c) 2020-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { type PlainObject, type RequestHeaders, SerializationFactory } from '@finos/legend-shared'; import { type LegendApplicationConfigurationInput, type LegendApplicationConfigurationData, type LegendApplicationBackendEntry, LegendApplicationConfig } from '@finos/legend-application'; import { QueryBuilderConfig } from '@finos/legend-query-builder'; import { DataProductConfig } from '@finos/legend-extension-dsl-data-product'; import { OIDCConfiguration, LegendIngestionConfiguration } from './LegendIngestionConfiguration.js'; export declare class ServiceRegistrationEnvironmentConfig { env: string; executionUrl: string; modes: string[]; managementUrl: string; static readonly serialization: SerializationFactory; } export declare class UserSearchConfig { applicationDirectoryUrl: string; userProfileImageUrl: string; static readonly serialization: SerializationFactory; } declare class LegendStudioApplicationCoreOptions { /** * Indicates if we should enable strict-mode for graph builder * * Default to `false` */ enableGraphBuilderStrictMode: boolean; /** * Indicates whether we enable type ahead in all editors. * * Default to `false` because of performance reasons for large models. */ typeAheadEnabled: boolean; projectCreationGroupIdSuggestion: string; /** * This flag is for any feature that is not production ready. * Used to iterate over features until they are ready for production. */ NonProductionFeatureFlag: boolean; /** * Indicates if we should keep section index and do not rewrite/flatten the paths shortened by section * imports. * * This flag will be kept until we have full support for section index * See https://github.com/finos/legend-studio/issues/1067 */ TEMPORARY__preserveSectionIndex: boolean; /** * This flag can be removed when the support for local connection is official * Right now it's done to support the SnowflakeApp creation demo * See https://github.com/finos/legend-engine/pull/1819 */ TEMPORARY__enableLocalConnectionBuilder: boolean; /** * This flag enables creating a sandbox project via engine. * Remove this flag once workflow is finalized. */ TEMPORARY__enableCreationOfSandboxProjects: boolean; /** * Provides service registration environment configs. * * TODO: when we modularize service, we can move this config to DSL Service preset. Then, we can remove * the TEMPORARY__ prefix. * * @modularize * See https://github.com/finos/legend-studio/issues/65 */ TEMPORARY__serviceRegistrationConfig: ServiceRegistrationEnvironmentConfig[]; /** * Config specific to query builder */ queryBuilderConfig: QueryBuilderConfig | undefined; ingestDeploymentConfig: LegendIngestionConfiguration | undefined; dataProductConfig: DataProductConfig | undefined; userSearchConfig: UserSearchConfig | undefined; reconciliationOidcConfig: OIDCConfiguration | undefined; /** * Indicates if we should enable oauth flow * * Default to `false` */ enableOauthFlow: boolean; private static readonly serialization; static create(configData: PlainObject): LegendStudioApplicationCoreOptions; } export interface LegendStudioApplicationConfigurationData extends LegendApplicationConfigurationData { sdlc: { url: string; baseHeaders?: RequestHeaders; client?: string; /** * Enable the popup-based SDLC re-authentication flow. * * When `true`, Studio surfaces a "Re-authenticate with SDLC" action * and (on a mid-session 401) automatically opens a popup that completes * the OAuth dance against the SDLC server — preserving all in-memory * editor state instead of doing a top-level navigation that wipes it. * * The popup uses a same-origin static page as its OAuth `redirect_uri`, * derived at runtime from Studio's own origin + base URL (the same way * the boot-time `/auth/authorize` flow constructs its `redirect_uri`). * The deployment ships that page at `/popup-callback.html`; * deployments that enable this flag must register that derived URL on * the SDLC server's OAuth client allow-list. */ enablePopupReAuth?: boolean; /** * When `true`, the SDLC server is authenticated exclusively via the * session cookie, never via an `Authorization: Bearer` header. * * See `SDLCServerClientConfig.useCookieAuthOnly`. */ useCookieAuthOnly?: boolean; }; depot: { url: string; }; engine: { url: string; queryUrl?: string; useCookieAuthOnly?: boolean; queryClientName?: string; }; query?: { url: string; }; marketplace?: { url: string; }; showcase?: { url: string; }; pct?: { reportUrl: string; }; legendAI?: { url: string; }; /** * The lakehouse contract server, as Legend Query and Legend Marketplace * configure it: Studio reads the viewer's lakehouse environment from its * entitlements */ lakehouse?: { url: string; }; } export declare class LegendStudioApplicationConfig extends LegendApplicationConfig { readonly options: LegendStudioApplicationCoreOptions; readonly engineServerUrl: string; readonly engineQueryServerUrl?: string | undefined; readonly engineQueryClientName?: string | undefined; readonly engineUseCookieAuthOnly: boolean; readonly depotServerUrl: string; readonly sdlcServerUrl: string; readonly sdlcServerBaseHeaders?: RequestHeaders | undefined; readonly sdlcServerClient?: string | undefined; readonly sdlcEnablePopupReAuth: boolean; readonly sdlcUseCookieAuthOnly: boolean; readonly queryApplicationUrl?: string | undefined; readonly marketplaceApplicationUrl?: string | undefined; readonly showcaseServerUrl?: string | undefined; readonly pctReportUrl?: string | undefined; readonly legendAIUrl?: string | undefined; readonly lakehouseContractUrl?: string | undefined; constructor(input: LegendApplicationConfigurationInput); getDefaultApplicationStorageKey(): string; getBackendEntries(): LegendApplicationBackendEntry[]; } export {}; //# sourceMappingURL=LegendStudioApplicationConfig.d.ts.map