feat: add organization policy center
This commit is contained in:
@@ -159,6 +159,7 @@ import { reclaimStorage, requireStorageQuota, storageCleanupPreview, storageSumm
|
||||
import { backupSummary, createDatabaseBackup } from "./backup.mjs";
|
||||
import { systemReadiness } from "./readiness.mjs";
|
||||
import { bindProjectStyleKit, createStyleKit, getProjectStyleKit, getStyleKit, listStyleKits, updateStyleKit } from "./style-kits.mjs";
|
||||
import { evaluateAndRecordOrganizationPolicies, listOrganizationPolicies, updateOrganizationPolicy } from "./organization-policies.mjs";
|
||||
import { dispatchNotificationEvent, listUserNotificationPreferences, listUserNotifications, markAllUserNotificationsRead, markUserNotificationRead, notificationDeliveries, updateUserNotificationPreference } from "./notifications.mjs";
|
||||
import { composeProject, listCompositions } from "./composition.mjs";
|
||||
import { listProjectArtifacts, readArtifactContent } from "./media-artifacts.mjs";
|
||||
@@ -1852,6 +1853,30 @@ createServer(async (req, res) => {
|
||||
return send(res, 200, updateCostCenter(context, organizationId, decodeURIComponent(organizationCostCenterMatch[2]), await readBody(req)));
|
||||
}
|
||||
|
||||
const organizationPoliciesEvaluateMatch = pathname.match(/^\/api\/organizations\/([^/]+)\/policies\/evaluate$/);
|
||||
if (req.method === "POST" && organizationPoliciesEvaluateMatch) {
|
||||
const organizationId = decodeURIComponent(organizationPoliciesEvaluateMatch[1]);
|
||||
const context = contextWith({
|
||||
organizationId,
|
||||
workspaceId: req.headers["x-workspace-id"] || url.searchParams.get("workspaceId") || "",
|
||||
projectId: req.headers["x-project-id"] || url.searchParams.get("projectId") || ""
|
||||
}, req);
|
||||
return send(res, 200, evaluateAndRecordOrganizationPolicies(context, organizationId, await readBody(req)));
|
||||
}
|
||||
|
||||
const organizationPoliciesMatch = pathname.match(/^\/api\/organizations\/([^/]+)\/policies(?:\/([^/]+))?$/);
|
||||
if (req.method === "GET" && organizationPoliciesMatch && !organizationPoliciesMatch[2]) {
|
||||
const organizationId = decodeURIComponent(organizationPoliciesMatch[1]);
|
||||
const context = contextWith({ organizationId, workspaceId: "", projectId: "" }, req);
|
||||
return send(res, 200, listOrganizationPolicies(context, organizationId, { limit: url.searchParams.get("limit") || 40 }));
|
||||
}
|
||||
if (req.method === "PATCH" && organizationPoliciesMatch?.[2]) {
|
||||
const organizationId = decodeURIComponent(organizationPoliciesMatch[1]);
|
||||
const policyKey = decodeURIComponent(organizationPoliciesMatch[2]);
|
||||
const context = contextWith({ organizationId, workspaceId: "", projectId: "" }, req);
|
||||
return send(res, 200, updateOrganizationPolicy(context, organizationId, policyKey, await readBody(req)));
|
||||
}
|
||||
|
||||
const organizationRolePolicyMatch = pathname.match(/^\/api\/organizations\/([^/]+)\/role-policies(?:\/([^/]+))?$/);
|
||||
if (req.method === "GET" && organizationRolePolicyMatch) {
|
||||
const organizationId = decodeURIComponent(organizationRolePolicyMatch[1]);
|
||||
|
||||
Reference in New Issue
Block a user