Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update existing inject scripts Integrations to support site installations #442

Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions integrations/fathom/gitbook-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ script: ./src/index.ts
# See https://developer.gitbook.com/integrations/configurations#scopes
scopes:
- space:script:inject
- site:script:inject
contentSecurityPolicy:
script-src: |
https://cdn.usefathom.com;
Expand Down
4 changes: 3 additions & 1 deletion integrations/fathom/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ export const handleFetchEvent: FetchPublishScriptEventCallback = async (
event,
{ environment }: FathomRuntimeContext
) => {
const siteId = environment.spaceInstallation.configuration.site_id;
const siteId =
environment.siteInstallation?.configuration?.site_id ??
environment.spaceInstallation.configuration.site_id;

if (!siteId) {
return;
Expand Down
2 changes: 2 additions & 0 deletions integrations/googleanalytics/gitbook-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ script: ./src/index.ts
scopes:
- space:script:inject
- space:script:cookies
- site:script:inject
- site:script:cookies
contentSecurityPolicy:
script-src: |
https://www.google-analytics.com
Expand Down
4 changes: 3 additions & 1 deletion integrations/googleanalytics/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ export const handleFetchEvent: FetchPublishScriptEventCallback = async (
event,
{ environment }: GARuntimeContext
) => {
const trackingId = environment.spaceInstallation.configuration.tracking_id;
const trackingId =
environment.siteInstallation?.configuration?.tracking_id ??
environment.spaceInstallation.configuration.tracking_id;
if (!trackingId) {
return;
}
Expand Down
1 change: 1 addition & 0 deletions integrations/heap/gitbook-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ script: ./src/index.ts
# See https://developer.gitbook.com/integrations/configurations#scopes
scopes:
- space:script:inject
- site:script:inject
organization: d8f63b60-89ae-11e7-8574-5927d48c4877
contentSecurityPolicy:
script-src: https://heapanalytics.com https://cdn.heapanalytics.com 'unsafe-inline';
Expand Down
8 changes: 6 additions & 2 deletions integrations/heap/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,14 @@ export const handleFetchEvent: FetchPublishScriptEventCallback = async (
event,
{ environment }: HeapRuntimeContext
) => {
const trackingId = environment.spaceInstallation.configuration.tracking_id;
const trackingId =
environment.siteInstallation?.configuration?.tracking_id ??
environment.spaceInstallation.configuration.tracking_id;
if (!trackingId) {
throw new Error(
`The Heap environment ID is missing from the configuration (ID: ${event.spaceId}).`
`The Heap environment ID is missing from the configuration (ID: ${
'spaceId' in event ? event.spaceId : event.siteId
}).`
);
}

Expand Down
1 change: 1 addition & 0 deletions integrations/hotjar/gitbook-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ script: ./src/index.ts
# See https://developer.gitbook.com/integrations/configurations#scopes
scopes:
- space:script:inject
- site:script:inject
organization: d8f63b60-89ae-11e7-8574-5927d48c4877
contentSecurityPolicy:
script-src: static.hotjar.com script.hotjar.com;
Expand Down
8 changes: 6 additions & 2 deletions integrations/hotjar/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,14 @@ export const handleFetchEvent: FetchPublishScriptEventCallback = async (
event,
{ environment }: HotjarRuntimeContext
) => {
const trackingId = environment.spaceInstallation.configuration.tracking_id;
const trackingId =
environment.siteInstallation?.configuration?.tracking_id ??
environment.spaceInstallation.configuration.tracking_id;
if (!trackingId) {
throw new Error(
`The Hotjar Site ID is missing from the configuration (ID: ${event.spaceId}).`
`The Hotjar Site ID is missing from the configuration (ID: ${
'spaceId' in event ? event.spaceId : event.siteId
}).`
);
}

Expand Down
1 change: 1 addition & 0 deletions integrations/injectionTest/gitbook-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ script: ./src/index.ts
# See https://developer.gitbook.com/integrations/configurations#scopes
scopes:
- space:script:inject
- site:script:inject
summary: |
Test for injecting scripts
categories:
Expand Down
2 changes: 2 additions & 0 deletions integrations/intercom/gitbook-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ script: ./src/index.ts
scopes:
- space:script:inject
- space:script:cookies
- site:script:inject
- site:script:cookies
contentSecurityPolicy:
script-src: |
https://js.intercomcdn.com
Expand Down
4 changes: 3 additions & 1 deletion integrations/intercom/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ export const handleFetchEvent: FetchPublishScriptEventCallback = async (
event,
{ environment }: IntercomRuntimeContext
) => {
const appId = environment.spaceInstallation.configuration.app_id;
const appId =
environment.siteInstallation?.configuration?.app_id ??
environment.spaceInstallation.configuration.app_id;

if (!appId) {
return;
Expand Down
1 change: 1 addition & 0 deletions integrations/mixpanel/gitbook-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ script: ./src/index.ts
# See https://developer.gitbook.com/integrations/configurations#scopes
scopes:
- space:script:inject
- site:script:inject
organization: gitbook
contentSecurityPolicy:
script-src: cdn.mxpnl.com;
Expand Down
8 changes: 6 additions & 2 deletions integrations/mixpanel/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,14 @@ export const handleFetchEvent: FetchPublishScriptEventCallback = async (
event,
{ environment }: MixpanelRuntimeContext
) => {
const projectToken = environment.spaceInstallation.configuration.project_token;
const projectToken =
environment.siteInstallation?.configuration?.project_token ??
environment.spaceInstallation.configuration.project_token;
if (!projectToken) {
throw new Error(
`The Mixpanel Project Token is missing from the configuration (ID: ${event.spaceId}).`
`The Mixpanel Project Token is missing from the configuration (ID: ${
'spaceId' in event ? event.spaceId : event.siteId
}).`
);
}

Expand Down
1 change: 1 addition & 0 deletions integrations/plausible/gitbook-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ script: ./src/index.ts
# See https://developer.gitbook.com/integrations/configurations#scopes
scopes:
- space:script:inject
- site:script:inject
contentSecurityPolicy:
script-src: |
https://plausible.io;
Expand Down
8 changes: 6 additions & 2 deletions integrations/plausible/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,12 @@ export const handleFetchEvent: FetchPublishScriptEventCallback = async (
event,
{ environment }: PlausibleRuntimeContext
) => {
const domain = environment.spaceInstallation.configuration.domain;
const api = environment.spaceInstallation.configuration.api || '';
const domain =
environment.siteInstallation?.configuration?.domain ??
environment.spaceInstallation.configuration.domain;
const api =
environment.siteInstallation?.configuration?.api ??
(environment.spaceInstallation.configuration.api || '');
if (!domain) {
return;
}
Expand Down
1 change: 1 addition & 0 deletions integrations/posthog/gitbook-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ script: ./src/index.ts
# See https://developer.gitbook.com/integrations/configurations#scopes
scopes:
- space:script:inject
- site:script:inject
organization: d8f63b60-89ae-11e7-8574-5927d48c4877
contentSecurityPolicy:
script-src: https://eu.posthog.com https://app.posthog.com;
Expand Down
16 changes: 12 additions & 4 deletions integrations/posthog/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,24 @@ export const handleFetchEvent: FetchPublishScriptEventCallback = async (
EU: 'https://eu.posthog.com',
US: 'https://app.posthog.com',
};
const projectApiKey = environment.spaceInstallation.configuration.projectApiKey;
const instanceAddress = environment.spaceInstallation.configuration.instanceAddress;
const projectApiKey =
environment.siteInstallation?.configuration?.projectApiKey ??
environment.spaceInstallation.configuration.projectApiKey;
const instanceAddress =
environment.siteInstallation?.configuration?.instanceAddress ??
environment.spaceInstallation.configuration.instanceAddress;
if (!projectApiKey) {
throw new Error(
`The PostHog project API key is missing from the space configuration (ID: ${event.spaceId}).`
`The PostHog project API key is missing from the space configuration (ID: ${
'spaceId' in event ? event.spaceId : event.siteId
}).`
);
}
if (!instanceAddress) {
throw new Error(
`The PostHog instance address is missing from the space configuration (ID: ${event.spaceId}).`
`The PostHog instance address is missing from the space configuration (ID: ${
'spaceId' in event ? event.spaceId : event.siteId
}).`
);
}

Expand Down
7 changes: 5 additions & 2 deletions packages/runtime/src/context.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@ import { GitBookAPI, IntegrationEnvironment } from '@gitbook/api';

export interface RuntimeEnvironment<
InstallationConfiguration = {},
SpaceInstallationConfiguration = {}
SpaceOrSiteInstallationConfiguration = {}
> extends IntegrationEnvironment {
installation?: IntegrationEnvironment['installation'] & {
configuration: InstallationConfiguration;
};
spaceInstallation?: IntegrationEnvironment['spaceInstallation'] & {
configuration: SpaceInstallationConfiguration;
configuration: SpaceOrSiteInstallationConfiguration;
};
siteInstallation?: IntegrationEnvironment['siteInstallation'] & {
configuration: SpaceOrSiteInstallationConfiguration;
};
}

Expand Down
Loading