Implement managed browser security, individual agents and observability
This commit is contained in:
1 parent
ff482ebe23
commit
ea448de2d4
172 files changed
+5404
-347
No files matched your search
@@ -0,0 +1,11 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {createRequire} from 'node:module';
|
||||
const require=createRequire(import.meta.url),{startAgentControl}=require('../apps/browser/agent-control.cjs'),{requestAgent}=require('../apps/browser/agent-transport-client.cjs');
|
||||
test('bookmark and management failures produce static diagnostic reasons and retain fail-closed replies',async t=>{
|
||||
const reports=[];let failure;
|
||||
const api=await startAgentControl({authorize:async()=>({allowed:true,role:'agent',scopes:['bookmarks:mutate']}),actions:{'bookmarks:mutate':async()=>{throw Error(failure);}},audit:async()=>{},onError:async report=>reports.push(report),maxRequestsPerMinute:60});t.after(()=>api.close());
|
||||
const reasons=['Management update in progress. Try again.','Managed policy changed during bookmark update','Bookmark update awaits management synchronization','Bookmark update requires a fresh signed policy','Management request refused','Managed application changed','Invalid bookmark details'];
|
||||
for(const reason of reasons){failure=reason;const response=await requestAgent(api,{action:'bookmarks:mutate',args:{action:'add',expectedRevision:0,policyVersion:1,bookmark:{id:'fixture',title:'Fixture',url:'https://example.com/'}}});assert.equal(response.status,500);const body=await response.json();assert.equal(body.error,'Agent action failed');assert.equal('result' in body,false);assert.equal(reports.at(-1).reason,reason);assert.equal(reports.at(-1).action,'bookmarks:mutate');}
|
||||
failure='Confidential unexpected error https://internal.example/?password=secret';const response=await requestAgent(api,{action:'bookmarks:mutate',args:{action:'delete',id:'fixture',expectedRevision:0,policyVersion:1}});assert.equal(response.status,500);assert.equal(reports.at(-1).reason,'unclassified-action-failure');assert.equal(JSON.stringify(reports).includes('password=secret'),false);
|
||||
});
|
||||
Reference in new issue
Block a user