mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) updates from grist-core
This commit is contained in:
22
app/common/BootProbe.ts
Normal file
22
app/common/BootProbe.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
export type BootProbeIds =
|
||||
'boot-page' |
|
||||
'health-check' |
|
||||
'reachable' |
|
||||
'host-header' |
|
||||
'system-user'
|
||||
;
|
||||
|
||||
export interface BootProbeResult {
|
||||
verdict?: string;
|
||||
success?: boolean;
|
||||
done?: boolean;
|
||||
severity?: 'fault' | 'warning' | 'hmm';
|
||||
details?: Record<string, any>;
|
||||
}
|
||||
|
||||
export interface BootProbeInfo {
|
||||
id: BootProbeIds;
|
||||
name: string;
|
||||
}
|
||||
|
||||
@@ -86,6 +86,8 @@ export const commonUrls = {
|
||||
helpTelemetryLimited: "https://support.getgrist.com/telemetry-limited",
|
||||
helpCalendarWidget: "https://support.getgrist.com/widget-calendar",
|
||||
helpLinkKeys: "https://support.getgrist.com/examples/2021-04-link-keys",
|
||||
freeCoachingCall: getFreeCoachingCallUrl(),
|
||||
contactSupport: getContactSupportUrl(),
|
||||
plans: "https://www.getgrist.com/pricing",
|
||||
sproutsProgram: "https://www.getgrist.com/sprouts-program",
|
||||
contact: "https://www.getgrist.com/contact",
|
||||
@@ -670,6 +672,9 @@ export interface GristLoadConfig {
|
||||
// Url for free coaching call scheduling for the browser client to use.
|
||||
freeCoachingCallUrl?: string;
|
||||
|
||||
// Url for "contact support" button on Grist's "not found" error page
|
||||
contactSupportUrl?: string;
|
||||
|
||||
// When set, this directs the client to encode org information in path, not in domain.
|
||||
pathOnly?: boolean;
|
||||
|
||||
@@ -865,21 +870,33 @@ export function getKnownOrg(): string|null {
|
||||
}
|
||||
}
|
||||
|
||||
export function getHelpCenterUrl(): string|null {
|
||||
export function getHelpCenterUrl(): string {
|
||||
const defaultUrl = "https://support.getgrist.com";
|
||||
if(isClient()) {
|
||||
const gristConfig: GristLoadConfig = (window as any).gristConfig;
|
||||
return gristConfig && gristConfig.helpCenterUrl || null;
|
||||
return gristConfig && gristConfig.helpCenterUrl || defaultUrl;
|
||||
} else {
|
||||
return process.env.GRIST_HELP_CENTER || null;
|
||||
return process.env.GRIST_HELP_CENTER || defaultUrl;
|
||||
}
|
||||
}
|
||||
|
||||
export function getFreeCoachingCallUrl(): string|null {
|
||||
export function getFreeCoachingCallUrl(): string {
|
||||
const defaultUrl = "https://calendly.com/grist-team/grist-free-coaching-call";
|
||||
if(isClient()) {
|
||||
const gristConfig: GristLoadConfig = (window as any).gristConfig;
|
||||
return gristConfig && gristConfig.freeCoachingCallUrl || null;
|
||||
return gristConfig && gristConfig.freeCoachingCallUrl || defaultUrl;
|
||||
} else {
|
||||
return process.env.FREE_COACHING_CALL_URL || null;
|
||||
return process.env.FREE_COACHING_CALL_URL || defaultUrl;
|
||||
}
|
||||
}
|
||||
|
||||
export function getContactSupportUrl(): string {
|
||||
const defaultUrl = "https://www.getgrist.com/contact/";
|
||||
if(isClient()) {
|
||||
const gristConfig: GristLoadConfig = (window as any).gristConfig;
|
||||
return gristConfig && gristConfig.contactSupportUrl || defaultUrl;
|
||||
} else {
|
||||
return process.env.GRIST_CONTACT_SUPPORT_URL || defaultUrl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -938,7 +955,7 @@ export function extractOrgParts(reqHost: string|undefined, reqPath: string): Org
|
||||
orgFromHost = getOrgFromHost(reqHost);
|
||||
if (orgFromHost) {
|
||||
// Some subdomains are shared, and do not reflect the name of an organization.
|
||||
// See https://phab.getgrist.com/w/hosting/v1/urls/ for a list.
|
||||
// See /documentation/urls.md for a list.
|
||||
if (/^(api|v1-.*|doc-worker-.*)$/.test(orgFromHost)) {
|
||||
orgFromHost = null;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ const BLACKLISTED_SUBDOMAINS = new Set([
|
||||
/**
|
||||
*
|
||||
* Checks whether the subdomain is on the list of forbidden subdomains.
|
||||
* See https://phab.getgrist.com/w/hosting/v1/urls/#organization-subdomains
|
||||
* See /documentation/urls.md#organization-subdomains
|
||||
*
|
||||
* Also enforces various sanity checks.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user