diff --git a/.changeset/spotty-icons-shake.md b/.changeset/spotty-icons-shake.md new file mode 100644 index 0000000000..0c4f318cd9 --- /dev/null +++ b/.changeset/spotty-icons-shake.md @@ -0,0 +1,5 @@ +--- +'@backstage/frontend-defaults': patch +--- + +Added support for passing through `allowUnknownExtensionConfig` as a flag diff --git a/packages/frontend-defaults/report.api.md b/packages/frontend-defaults/report.api.md index 72f212b3b1..a5fe3e5f07 100644 --- a/packages/frontend-defaults/report.api.md +++ b/packages/frontend-defaults/report.api.md @@ -44,6 +44,10 @@ export interface CreateAppOptions { | FrontendFeatureLoader | CreateAppFeatureLoader )[]; + // (undocumented) + flags?: { + allowUnknownExtensionConfig?: boolean; + }; loadingComponent?: ReactNode; // (undocumented) pluginInfoResolver?: FrontendPluginInfoResolver; diff --git a/packages/frontend-defaults/src/createApp.test.tsx b/packages/frontend-defaults/src/createApp.test.tsx index 4f627f1839..1d96c22ad0 100644 --- a/packages/frontend-defaults/src/createApp.test.tsx +++ b/packages/frontend-defaults/src/createApp.test.tsx @@ -282,6 +282,38 @@ describe('createApp', () => { ).resolves.toBeInTheDocument(); }); + it('should allow unknown extension config if the flag is set', async () => { + const app = createApp({ + configLoader: async () => ({ + config: mockApis.config({ + data: { + app: { + extensions: [{ 'unknown:lols/wut': false }], + }, + }, + }), + }), + features: [ + appPlugin, + createFrontendPlugin({ + pluginId: 'test', + extensions: [ + PageBlueprint.make({ + params: { + defaultPath: '/', + loader: async () =>