@@ -256,6 +256,7 @@ pub struct QueryResult {
256256
257257pub struct Service {
258258 content_endpoint : Option < String > ,
259+ user_forward_header : String ,
259260 path : PathBuf ,
260261 vector_store : VectorStore ,
261262 pending : Mutex < HashSet < String > > ,
@@ -277,6 +278,7 @@ enum TerminusIndexOperationError {}
277278
278279async fn get_operations_from_content_endpoint (
279280 content_endpoint : String ,
281+ user_forward_header : String ,
280282 domain : String ,
281283 commit : String ,
282284 previous : Option < String > ,
@@ -287,7 +289,11 @@ async fn get_operations_from_content_endpoint(
287289 }
288290 let endpoint = format ! ( "{}/{}" , content_endpoint, & domain) ;
289291 let url = reqwest:: Url :: parse_with_params ( & endpoint, & params) . unwrap ( ) ;
290- let res = reqwest:: get ( url)
292+ let client = reqwest:: Client :: new ( ) ;
293+ let res = client
294+ . get ( url)
295+ . header ( user_forward_header, "admin" )
296+ . send ( )
291297 . await
292298 . unwrap ( )
293299 . bytes_stream ( )
@@ -369,10 +375,16 @@ impl Service {
369375 s
370376 }
371377
372- fn new < P : Into < PathBuf > > ( path : P , num_bufs : usize , content_endpoint : Option < String > ) -> Self {
378+ fn new < P : Into < PathBuf > > (
379+ path : P ,
380+ user_forward_header : String ,
381+ num_bufs : usize ,
382+ content_endpoint : Option < String > ,
383+ ) -> Self {
373384 let path = path. into ( ) ;
374385 Service {
375386 content_endpoint,
387+ user_forward_header,
376388 path : path. clone ( ) ,
377389 vector_store : VectorStore :: new ( path, num_bufs) ,
378390 pending : Mutex :: new ( HashSet :: new ( ) ) ,
@@ -416,6 +428,7 @@ impl Service {
416428 if self . test_and_set_pending ( index_id. clone ( ) ) . await {
417429 let opstream = get_operations_from_content_endpoint (
418430 content_endpoint. to_string ( ) ,
431+ self . user_forward_header . clone ( ) ,
419432 domain. clone ( ) ,
420433 commit. clone ( ) ,
421434 previous. clone ( ) ,
@@ -725,12 +738,18 @@ enum AssignIndexError {
725738
726739pub async fn serve < P : Into < PathBuf > > (
727740 directory : P ,
741+ user_forward_header : String ,
728742 port : u16 ,
729743 num_bufs : usize ,
730744 content_endpoint : Option < String > ,
731745) -> Result < ( ) , Box < dyn std:: error:: Error + Send + Sync > > {
732746 let addr = SocketAddr :: new ( IpAddr :: V6 ( Ipv6Addr :: UNSPECIFIED ) , port) ;
733- let service = Arc :: new ( Service :: new ( directory, num_bufs, content_endpoint) ) ;
747+ let service = Arc :: new ( Service :: new (
748+ directory,
749+ user_forward_header,
750+ num_bufs,
751+ content_endpoint,
752+ ) ) ;
734753 let make_svc = make_service_fn ( move |_conn| {
735754 let s = service. clone ( ) ;
736755 async {
0 commit comments