test: guard employee edge security boundary
This commit is contained in:
parent
7044d36ae6
commit
0c4830dcc6
12
tests/edge-security-v1774.mjs
Normal file
12
tests/edge-security-v1774.mjs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import fs from 'node:fs';
|
||||||
|
const src=fs.readFileSync('supabase/functions/caterium-create-employee/index.ts','utf8');
|
||||||
|
let bad=0;const check=(v,m)=>{console.log(`${v?'OK':'FAIL'}: ${m}`);if(!v)bad++};
|
||||||
|
check(src.includes('npm:@supabase/supabase-js@2.116.0'),'Supabase JS is pinned');
|
||||||
|
check(!src.includes('"Access-Control-Allow-Origin": "*"'),'wildcard CORS is removed');
|
||||||
|
check(src.includes('https://app.caterium.ru')&&src.includes('WORKERS_DEV_ORIGIN'),'production and backup origins are allowlisted');
|
||||||
|
check(src.includes('origin_not_allowed'),'unknown browser origins fail closed');
|
||||||
|
check(src.includes('UUID_RE')&&src.includes('EMAIL_RE')&&src.includes('ALLOWED_ROLES'),'employee inputs are validated');
|
||||||
|
check(src.includes('console.error("[caterium-create-employee]"'),'internal errors remain server-side');
|
||||||
|
check(src.includes('employee_create_failed'),'unexpected failures return a safe public code');
|
||||||
|
check(!src.includes('return reply({ error: e instanceof Error ? e.message'),'raw exception messages are not returned');
|
||||||
|
if(bad)process.exit(1);
|
||||||
Loading…
Reference in New Issue
Block a user