Initial implementation of an extension-based default analytics API

Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
This commit is contained in:
Eric Peterson
2025-03-25 16:46:10 +01:00
parent b5a1fe0144
commit 93b5e38f8b
12 changed files with 498 additions and 15 deletions
+30
View File
@@ -101,6 +101,24 @@ export const apis: AnyApiFactory[] = [
},
}),
];
// Or, when building for the new frontend system:
import { AnalyticsBlueprint } from '@backstage/frontend-plugin-api';
export const acmeAnalyticsImplementation = AnalyticsBlueprint.make({
name: 'acme',
params: define =>
define({
deps: {},
factory() {
return {
captureEvent: event => {
window._AcmeAnalyticsQ.push(event);
},
};
},
}),
});
```
In reality, you would likely want to encapsulate instantiation logic and pull
@@ -140,6 +158,18 @@ export const apis: AnyApiFactory[] = [
factory: ({ configApi }) => AcmeAnalytics.fromConfig(configApi),
}),
];
// Or, when building for the new frontend system:
import { AnalyticsBlueprint } from '@backstage/frontend-plugin-api';
export const acmeAnalyticsImplementation = AnalyticsBlueprint.make({
name: 'acme',
params: define =>
define({
deps: { configApi: configApiRef },
factory: ({ configApi }) => AcmeAnalytics.fromConfig(configApi),
}),
});
```
If you are integrating with an analytics service (as opposed to an internal