refactor(relay): extract shared relay policy presets across endpoints

This commit is contained in:
2026-03-24 18:07:04 +00:00
parent 318f913397
commit fcfb7cf75e
21 changed files with 132 additions and 126 deletions
+37
View File
@@ -1407,3 +1407,40 @@ Validation:
Follow-ups: Follow-ups:
- Optional next slice: extract shared relay policy presets into a constants module and reference them from all relayGet endpoints to reduce duplication. - Optional next slice: extract shared relay policy presets into a constants module and reference them from all relayGet endpoints to reduce duplication.
---
### CL-038: TASK22242 P2-S3 closure slice — shared relay policy presets extraction
date: 2026-03-24
author: Cline
scope: `pages/api/middleware/relayPolicyPresets.js`, `pages/api/endpoint/{getaccounts_api,getemailaccountcheck_api,getpreferredlanguage_api,getpersonalaccount_api,getlogin_api,getportallogin_api,getportalloginproxy_api,getbasicsearch_api,getbasicsearchpaged_api,getadvancedsearch_api,getadvancedsearchpaged_api,getportalmoduledetails_api,getportalmoduledetailsproxy_api,getmycases_api,getmyrepresentations_api,getawaitingsubmission_api,getrepresentations_api,getwatchedcases_api}.js`, `tests/phase21/_shared.cjs`
type: change
rationale: Complete the planned P2-S3 final maintainability slice by centralizing repeated relay timeout/retry policy objects into shared presets used consistently across all targeted relayGet endpoints.
impact: Eliminates duplicated policy literals, reduces drift risk, and preserves endpoint contracts/behavior by reusing equivalent policy values.
status: completed
Summary:
- Added new middleware constants module:
- `pages/api/middleware/relayPolicyPresets.js`
- `RELAY_POLICY_STRICT_LOGIN`
- `RELAY_POLICY_LOOKUP`
- `RELAY_POLICY_BOUNDED_READ`
- `RELAY_POLICY_SEARCH_PAGED`
- Refactored 18 relayGet endpoints to import and use shared presets instead of inline `relayPolicy` object literals:
- lookup profile: `getaccounts`, `getemailaccountcheck`, `getpreferredlanguage`, `getpersonalaccount`, `getportalloginproxy`
- strict login profile: `getlogin`, `getportallogin`
- bounded read profile: `getbasicsearch`, `getportalmoduledetails`, `getportalmoduledetailsproxy`, `getmycases`, `getmyrepresentations`, `getawaitingsubmission`, `getrepresentations`, `getwatchedcases`
- search paged profile: `getbasicsearchpaged`, `getadvancedsearch`, `getadvancedsearchpaged`
- Updated phase21 VM test harness (`tests/phase21/_shared.cjs`) to inject preset constants so endpoint contract tests continue to execute with import-stripped modules.
Validation:
- `node tests/phase21/endpoint-handler-contract.test.cjs` -> pass (164/164)
- `node tests/phase21/relay-forwarding-hardening.test.cjs` -> pass (10/10)
- `npm run lint` -> warnings only (pre-existing `react-hooks/exhaustive-deps`; no new lint errors)
Follow-ups:
- P2-S3 planned slices are now complete; no further mandatory relay policy rollout slices remain for this stream.
+2 -7
View File
@@ -17,6 +17,7 @@
*/ */
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_LOOKUP } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const emailAddress = req.query.emailAddress; const emailAddress = req.query.emailAddress;
@@ -34,13 +35,7 @@ export default async function ApiProxy(req, res) {
emailAddress + emailAddress +
"'&$count=true&$select=emailaddress1, contactid"; "'&$count=true&$select=emailaddress1, contactid";
const relayPolicy = { const relayPolicy = RELAY_POLICY_LOOKUP;
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
+2 -7
View File
@@ -25,6 +25,7 @@ import { azureHeadersPaged } from "../../../actions/core/headers";
import { consoleLogger } from "../../../actions/core/logger"; import { consoleLogger } from "../../../actions/core/logger";
import { respondError, respondSuccess } from "../middleware/apiResponse"; import { respondError, respondSuccess } from "../middleware/apiResponse";
import { relayGet, relayGetData } from "../middleware/relayForwarding"; import { relayGet, relayGetData } from "../middleware/relayForwarding";
import { RELAY_POLICY_SEARCH_PAGED } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const encodedSearchString = req.query.searchstring; const encodedSearchString = req.query.searchstring;
@@ -103,13 +104,7 @@ export default async function ApiProxy(req, res) {
queryString + queryString +
" pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true"; " pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true";
const relayPolicy = { const relayPolicy = RELAY_POLICY_SEARCH_PAGED;
method: "GET",
timeoutMs: 9000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 1000
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
@@ -51,6 +51,7 @@ import _ from "lodash";
import { azureHeadersPagedCustom } from "../../../actions/core/headers"; import { azureHeadersPagedCustom } from "../../../actions/core/headers";
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_SEARCH_PAGED } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const rawSearchString = req.query.searchstring; const rawSearchString = req.query.searchstring;
@@ -173,13 +174,7 @@ export default async function ApiProxy(req, res) {
: ""); : "");
} }
const relayPolicy = { const relayPolicy = RELAY_POLICY_SEARCH_PAGED;
method: "GET",
timeoutMs: 9000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 1000
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
@@ -19,6 +19,7 @@
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_BOUNDED_READ } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const loggedInUserId = req.query.loggedInUserId; const loggedInUserId = req.query.loggedInUserId;
@@ -39,13 +40,7 @@ export default async function ApiProxy(req, res) {
loggedInUserId + loggedInUserId +
" and servicestage eq 1 and pinswg_appealcasetype ne null&$orderby=createdon desc&$count=true"; " and servicestage eq 1 and pinswg_appealcasetype ne null&$orderby=createdon desc&$count=true";
const relayPolicy = { const relayPolicy = RELAY_POLICY_BOUNDED_READ;
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
+2 -7
View File
@@ -18,6 +18,7 @@
import { azureHeadersPaged } from "../../../actions/core/headers"; import { azureHeadersPaged } from "../../../actions/core/headers";
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_BOUNDED_READ } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const searchString = req.query.searchString; const searchString = req.query.searchString;
@@ -45,13 +46,7 @@ export default async function ApiProxy(req, res) {
: "") + : "") +
"and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true"; "and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true";
const relayPolicy = { const relayPolicy = RELAY_POLICY_BOUNDED_READ;
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
@@ -46,6 +46,7 @@ import _ from "lodash";
import { azureHeadersPagedCustom } from "../../../actions/core/headers"; import { azureHeadersPagedCustom } from "../../../actions/core/headers";
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_SEARCH_PAGED } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
let searchString = req.query.searchString; let searchString = req.query.searchString;
@@ -111,13 +112,7 @@ export default async function ApiProxy(req, res) {
? "&$skiptoken=" + '<cookie pagenumber="' + pageNumber + '" />' ? "&$skiptoken=" + '<cookie pagenumber="' + pageNumber + '" />'
: ""); : "");
const relayPolicy = { const relayPolicy = RELAY_POLICY_SEARCH_PAGED;
method: "GET",
timeoutMs: 9000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 1000
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
@@ -17,6 +17,7 @@
*/ */
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_LOOKUP } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const emailAddress = req.query.emailAddress; const emailAddress = req.query.emailAddress;
@@ -34,13 +35,7 @@ export default async function ApiProxy(req, res) {
emailAddress + emailAddress +
"'&$count=true&$select=emailaddress1, contactid"; "'&$count=true&$select=emailaddress1, contactid";
const relayPolicy = { const relayPolicy = RELAY_POLICY_LOOKUP;
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
+2 -7
View File
@@ -24,6 +24,7 @@
import { azureHeadersPaged } from "../../../actions/core/headers"; import { azureHeadersPaged } from "../../../actions/core/headers";
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_STRICT_LOGIN } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const emailAddress = req.query.emailAddress; const emailAddress = req.query.emailAddress;
@@ -52,13 +53,7 @@ export default async function ApiProxy(req, res) {
pwd + pwd +
"'&$count=true&$select=emailaddress1,contactid,pinswg_custom_password,yomifullname,firstname,lastname"; "'&$count=true&$select=emailaddress1,contactid,pinswg_custom_password,yomifullname,firstname,lastname";
const relayPolicy = { const relayPolicy = RELAY_POLICY_STRICT_LOGIN;
method: "GET",
timeoutMs: 5000,
maxRetries: 0,
retryBaseDelayMs: 0,
retryMaxDelayMs: 0
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
+2 -7
View File
@@ -19,6 +19,7 @@
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_BOUNDED_READ } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const loggedInUserId = req.query.loggedInUserId; const loggedInUserId = req.query.loggedInUserId;
@@ -39,13 +40,7 @@ export default async function ApiProxy(req, res) {
loggedInUserId + loggedInUserId +
" and pinswg_appealcasetype ne null&$orderby=createdon desc&$count=true"; " and pinswg_appealcasetype ne null&$orderby=createdon desc&$count=true";
const relayPolicy = { const relayPolicy = RELAY_POLICY_BOUNDED_READ;
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
@@ -19,6 +19,7 @@
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_BOUNDED_READ } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const loggedInUserId = req.query.loggedInUserId; const loggedInUserId = req.query.loggedInUserId;
@@ -39,13 +40,7 @@ export default async function ApiProxy(req, res) {
loggedInUserId + loggedInUserId +
"&$count=true&$orderby=createdon desc"; "&$count=true&$orderby=createdon desc";
const relayPolicy = { const relayPolicy = RELAY_POLICY_BOUNDED_READ;
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
+2 -7
View File
@@ -19,6 +19,7 @@
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_LOOKUP } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const contactid = req.query.contactid; const contactid = req.query.contactid;
@@ -36,13 +37,7 @@ export default async function ApiProxy(req, res) {
contactid + contactid +
")?$select=firstname, lastname, emailaddress1, telephone1, company, address1_line1,address1_line2,address1_city, address1_county,address1_postalcode,pinswg_typeofinvolvement,pinswg_contact_associatedlpa,pinswg_preferredlanguage&$count=true"; ")?$select=firstname, lastname, emailaddress1, telephone1, company, address1_line1,address1_line2,address1_city, address1_county,address1_postalcode,pinswg_typeofinvolvement,pinswg_contact_associatedlpa,pinswg_preferredlanguage&$count=true";
const relayPolicy = { const relayPolicy = RELAY_POLICY_LOOKUP;
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
+2 -7
View File
@@ -20,6 +20,7 @@ import { azureHeadersPaged } from "../../../actions/core/headers";
import { hashAPIPath } from "../../../actions/core/hash"; import { hashAPIPath } from "../../../actions/core/hash";
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_STRICT_LOGIN } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const emailAddress = req.query.emailAddress; const emailAddress = req.query.emailAddress;
@@ -65,13 +66,7 @@ export default async function ApiProxy(req, res) {
emailAddress + emailAddress +
"' and statuscode eq 1&$count=true&$select=emailaddress1,contactid,yomifullname,firstname,lastname"; "' and statuscode eq 1&$count=true&$select=emailaddress1,contactid,yomifullname,firstname,lastname";
const relayPolicy = { const relayPolicy = RELAY_POLICY_STRICT_LOGIN;
method: "GET",
timeoutMs: 5000,
maxRetries: 0,
retryBaseDelayMs: 0,
retryMaxDelayMs: 0
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
@@ -19,6 +19,7 @@
import { azureHeadersPaged } from "../../../actions/core/headers"; import { azureHeadersPaged } from "../../../actions/core/headers";
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_LOOKUP } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const emailAddress = req.query.emailAddress; const emailAddress = req.query.emailAddress;
@@ -36,13 +37,7 @@ export default async function ApiProxy(req, res) {
emailAddress + emailAddress +
"'&$count=true&$select=emailaddress1,contactid,yomifullname,firstname,lastname"; "'&$count=true&$select=emailaddress1,contactid,yomifullname,firstname,lastname";
const relayPolicy = { const relayPolicy = RELAY_POLICY_LOOKUP;
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
@@ -26,6 +26,7 @@
import { getSelectQuery } from "../../../actions/selectQueryTypes"; import { getSelectQuery } from "../../../actions/selectQueryTypes";
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_BOUNDED_READ } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const appealType = req.query.appealType; const appealType = req.query.appealType;
@@ -60,13 +61,7 @@ export default async function ApiProxy(req, res) {
queryUrl = queryUrl + getSelectQuery(appealType); queryUrl = queryUrl + getSelectQuery(appealType);
const relayPolicy = { const relayPolicy = RELAY_POLICY_BOUNDED_READ;
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
@@ -26,6 +26,7 @@
import { getSelectQuery } from "../../../actions/selectQueryTypes"; import { getSelectQuery } from "../../../actions/selectQueryTypes";
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_BOUNDED_READ } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const appealType = req.query.appealType; const appealType = req.query.appealType;
@@ -60,13 +61,7 @@ export default async function ApiProxy(req, res) {
queryUrl = queryUrl + getSelectQuery(appealType); queryUrl = queryUrl + getSelectQuery(appealType);
const relayPolicy = { const relayPolicy = RELAY_POLICY_BOUNDED_READ;
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
@@ -22,6 +22,7 @@ import {
} from "../../../actions/core/guards"; } from "../../../actions/core/guards";
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_LOOKUP } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const emailAddress = sanitizeString(req.query.emailAddress); const emailAddress = sanitizeString(req.query.emailAddress);
@@ -39,13 +40,7 @@ export default async function ApiProxy(req, res) {
escapeODataString(emailAddress) + escapeODataString(emailAddress) +
"'&$count=true&$select=pinswg_preferredlanguage,contactid"; "'&$count=true&$select=pinswg_preferredlanguage,contactid";
const relayPolicy = { const relayPolicy = RELAY_POLICY_LOOKUP;
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
+2 -7
View File
@@ -19,6 +19,7 @@
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_BOUNDED_READ } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const incidentID = req.query.incidentID; const incidentID = req.query.incidentID;
@@ -36,13 +37,7 @@ export default async function ApiProxy(req, res) {
incidentID + incidentID +
" and pinswg_publishtoweb eq true&$count=true&$orderby=createdon desc"; " and pinswg_publishtoweb eq true&$count=true&$orderby=createdon desc";
const relayPolicy = { const relayPolicy = RELAY_POLICY_BOUNDED_READ;
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
+2 -7
View File
@@ -19,6 +19,7 @@
import { respondError } from "../middleware/apiResponse"; import { respondError } from "../middleware/apiResponse";
import { relayGet } from "../middleware/relayForwarding"; import { relayGet } from "../middleware/relayForwarding";
import { RELAY_POLICY_BOUNDED_READ } from "../middleware/relayPolicyPresets";
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
const loggedInUserId = req.query.loggedInUserId; const loggedInUserId = req.query.loggedInUserId;
@@ -39,13 +40,7 @@ export default async function ApiProxy(req, res) {
loggedInUserId + loggedInUserId +
"&$select=pinswg_emailnotifications,modifiedon,pinswg_appealcasetype,pinswg_watchlistid,_pinswg_watchedcase_value,statuscode,pinswg_representationsubmitted,pinswg_representationtype&$count=true&$orderby=createdon desc&$expand=pinswg_WatchedCase($select=pinswg_AssociatedLPA)"; "&$select=pinswg_emailnotifications,modifiedon,pinswg_appealcasetype,pinswg_watchlistid,_pinswg_watchedcase_value,statuscode,pinswg_representationsubmitted,pinswg_representationtype&$count=true&$orderby=createdon desc&$expand=pinswg_WatchedCase($select=pinswg_AssociatedLPA)";
const relayPolicy = { const relayPolicy = RELAY_POLICY_BOUNDED_READ;
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
};
return relayGet({ return relayGet({
queryUrl, queryUrl,
@@ -0,0 +1,31 @@
export const RELAY_POLICY_STRICT_LOGIN = {
method: "GET",
timeoutMs: 5000,
maxRetries: 0,
retryBaseDelayMs: 0,
retryMaxDelayMs: 0
};
export const RELAY_POLICY_LOOKUP = {
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
};
export const RELAY_POLICY_BOUNDED_READ = {
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
};
export const RELAY_POLICY_SEARCH_PAGED = {
method: "GET",
timeoutMs: 9000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 1000
};
+28
View File
@@ -55,6 +55,34 @@ const loadModule = (relativePath, injected = {}) => {
error: () => {} error: () => {}
}, },
relayGet: defaultRelayGet, relayGet: defaultRelayGet,
RELAY_POLICY_STRICT_LOGIN: {
method: "GET",
timeoutMs: 5000,
maxRetries: 0,
retryBaseDelayMs: 0,
retryMaxDelayMs: 0
},
RELAY_POLICY_LOOKUP: {
method: "GET",
timeoutMs: 6000,
maxRetries: 1,
retryBaseDelayMs: 100,
retryMaxDelayMs: 500
},
RELAY_POLICY_BOUNDED_READ: {
method: "GET",
timeoutMs: 8000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 800
},
RELAY_POLICY_SEARCH_PAGED: {
method: "GET",
timeoutMs: 9000,
maxRetries: 2,
retryBaseDelayMs: 150,
retryMaxDelayMs: 1000
},
...injected ...injected
}; };