@taskforcehq/taskforce 0.3.321 → 0.3.322

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -40,6 +40,7 @@
40
40
  * POST /api/taskforce/admin/workspace-repair/scan
41
41
  * POST /api/taskforce/admin/workspace-repair/apply
42
42
  * POST/GET/DELETE/OPTIONS /mcp (+ /mcp/)
43
+ * GET /.well-known/openai-apps-challenge
43
44
  * GET /.well-known/oauth-authorization-server
44
45
  * GET /.well-known/oauth-protected-resource
45
46
  * POST /oauth/mcp/register
@@ -40,6 +40,7 @@
40
40
  * POST /api/taskforce/admin/workspace-repair/scan
41
41
  * POST /api/taskforce/admin/workspace-repair/apply
42
42
  * POST/GET/DELETE/OPTIONS /mcp (+ /mcp/)
43
+ * GET /.well-known/openai-apps-challenge
43
44
  * GET /.well-known/oauth-authorization-server
44
45
  * GET /.well-known/oauth-protected-resource
45
46
  * POST /oauth/mcp/register
@@ -73,6 +74,7 @@ import { buildAuthBehavior, buildSiteBehavior, getRouteEmailConfig, resolvePubli
73
74
  import { applyWorkspaceRepair, scanWorkspaceRepair } from '../../sync/workspaceRepair.js';
74
75
  import { testMintAppleClientSecret } from '../auth/providers/appleClientSecret.js';
75
76
  const PRICING_PAGE_DESCRIPTION_MAX_LENGTH = 2000;
77
+ const OPENAI_APPS_CHALLENGE_TOKEN = 'o9iBeJDuKPMtnKm5-B0BROga3bWDkJS6PBIg6JT9Izs';
76
78
  // === SECTION: Registration ===
77
79
  export function registerAdminRoutes(deps) {
78
80
  const { addRoute, core, context, requestWorkspaceId, requestUserId, requestRole, requestHeader, requestRuntimeMode, ensureAppAccess, ensureAdminRole, ensureCloudPlanData, requireCloudRuntime, resolveAuthenticatedUserId, resolveAdminRequestActor, auditAdminAction, resolveEffectiveObjectStorageConfig, getObjectStorageClient, taskAssetStore, normalizeDocumentPathInput, ensureWithinDir, getAssetMetadata, markAssetDeleted, clearAssetDeleted, removeAssetMetadata, getStorageTelemetry, appendStorageTelemetry, getStorageIntegrityHistory, appendStorageIntegrityHistory, getDocumentPurgeHistory, appendDocumentPurgeHistory, getCollaborationTelemetry, isCollaborationPolicyEnabled, normalizeMcpOauthScopeString, MCP_TOKEN_SCOPE_VALUES, MCP_CLOUD_TOOL_SCOPE_REQUIREMENTS, MCP_WRITE_RATE_LIMIT_ENABLED, MCP_WRITE_RATE_LIMIT_ACTOR_MAX_REQUESTS, MCP_WRITE_RATE_LIMIT_WORKSPACE_MAX_REQUESTS, MCP_WRITE_RATE_LIMIT_WINDOW_MS, } = deps;
@@ -2524,6 +2526,21 @@ export function registerAdminRoutes(deps) {
2524
2526
  });
2525
2527
  res.end();
2526
2528
  });
2529
+ // === SECTION: ChatGPT Apps domain verification ===
2530
+ addRoute('GET', '/.well-known/openai-apps-challenge', async (_req, res) => {
2531
+ res.writeHead(200, {
2532
+ 'Content-Type': 'text/plain; charset=utf-8',
2533
+ 'Cache-Control': 'no-store'
2534
+ });
2535
+ res.end(OPENAI_APPS_CHALLENGE_TOKEN);
2536
+ });
2537
+ addRoute('HEAD', '/.well-known/openai-apps-challenge', async (_req, res) => {
2538
+ res.writeHead(200, {
2539
+ 'Content-Type': 'text/plain; charset=utf-8',
2540
+ 'Cache-Control': 'no-store'
2541
+ });
2542
+ res.end();
2543
+ });
2527
2544
  // === SECTION: MCP OAuth 2.0 ===
2528
2545
  addRoute('GET', '/.well-known/oauth-authorization-server', async (req, res) => {
2529
2546
  const issuer = resolveMcpOauthIssuer(req);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taskforcehq/taskforce",
3
- "version": "0.3.321",
3
+ "version": "0.3.322",
4
4
  "description": "Shared task and planning workspace for humans collaborating with AI (public beta)",
5
5
  "author": "Taskforce HQ <hello@taskforcehq.ai> (https://taskforcehq.ai)",
6
6
  "license": "MIT",