@@ -858,6 +858,91 @@ describe('Function Execute API Route', () => {
858858 expect ( JSON . stringify ( data ) ) . toContain ( 'files/report-secret-value.txt' )
859859 } )
860860
861+ it ( 'classifies a binary export exact-empty when no secret was in scope' , async ( ) => {
862+ envFlagsMock . isRemoteSandboxEnabled = true
863+ mockExecuteInSandbox . mockResolvedValueOnce ( {
864+ result : 'done' ,
865+ stdout : '' ,
866+ sandboxId : 'sandbox-123' ,
867+ exportedFiles : { '/home/user/small.jpg' : '/9j/4AAQ' } ,
868+ } )
869+
870+ const response = await POST (
871+ createMockRequest ( 'POST' , {
872+ code : 'print("done")' ,
873+ language : 'python' ,
874+ workspaceId : 'workspace-1' ,
875+ outputs : {
876+ files : [
877+ {
878+ path : 'files/small.jpg' ,
879+ sandboxPath : '/home/user/small.jpg' ,
880+ mimeType : 'image/jpeg' ,
881+ } ,
882+ ] ,
883+ } ,
884+ } )
885+ )
886+
887+ expect ( response . status ) . toBe ( 200 )
888+ expect ( mockWriteWorkspaceFileByPath ) . toHaveBeenCalledWith (
889+ expect . objectContaining ( { secretProvenance : { status : 'exact' , entries : [ ] } } )
890+ )
891+ } )
892+
893+ it ( 'keeps a binary export unknown when a mounted input file carried a secret' , async ( ) => {
894+ envFlagsMock . isRemoteSandboxEnabled = true
895+ mockExecuteInSandbox . mockResolvedValueOnce ( {
896+ result : 'done' ,
897+ stdout : '' ,
898+ sandboxId : 'sandbox-123' ,
899+ exportedFiles : { '/home/user/small.jpg' : '/9j/4AAQ' } ,
900+ } )
901+
902+ const response = await POST (
903+ createMockRequest (
904+ 'POST' ,
905+ {
906+ code : 'print("done")' ,
907+ language : 'python' ,
908+ workspaceId : 'workspace-1' ,
909+ outputs : {
910+ files : [
911+ {
912+ path : 'files/small.jpg' ,
913+ sandboxPath : '/home/user/small.jpg' ,
914+ mimeType : 'image/jpeg' ,
915+ } ,
916+ ] ,
917+ } ,
918+ [ PRIVATE_SECRET_PROVENANCE_FIELD ] : {
919+ version : 1 ,
920+ complete : true ,
921+ selections : [
922+ {
923+ key : MOUNTED_WORKSPACE_FILES_PROVENANCE_KEY ,
924+ provenance : {
925+ version : 1 ,
926+ complete : true ,
927+ entries : [ { encryptedValue : 'encrypted:mounted-secret' } ] ,
928+ scope : { userId : 'user-123' , workspaceId : 'workspace-1' } ,
929+ } ,
930+ } ,
931+ ] ,
932+ } ,
933+ } ,
934+ {
935+ [ PRIVATE_SECRET_PROVENANCE_HEADER ] : PRIVATE_SECRET_PROVENANCE_BUNDLE_V1 ,
936+ }
937+ )
938+ )
939+
940+ expect ( response . status ) . toBe ( 200 )
941+ expect ( mockWriteWorkspaceFileByPath ) . toHaveBeenCalledWith (
942+ expect . objectContaining ( { secretProvenance : { status : 'unknown' } } )
943+ )
944+ } )
945+
861946 it ( 'marks binary exports unknown without failing the Function execution' , async ( ) => {
862947 envFlagsMock . isRemoteSandboxEnabled = true
863948 mockExecuteInSandbox . mockResolvedValueOnce ( {
0 commit comments