@odigos/ui-kit 0.0.259 → 0.0.261
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.
- package/CHANGELOG.md +21 -0
- package/lib/chunks/{connections-scope-CogqbI1K.js → connections-scope-DhNWocBO.js} +1 -1
- package/lib/chunks/{index-Bio7SJqx.js → index-DILEVYlK.js} +12 -12
- package/lib/chunks/odigos-context-BYgtdAtj.js +19 -0
- package/lib/chunks/source-instrument-form-context-oDlfTrOD.js +1 -0
- package/lib/chunks/{ui-components-CrXELmQx.js → ui-components-BDSEcaSZ.js} +197 -197
- package/lib/chunks/use-odigos-api-DHCLONPK.js +5 -0
- package/lib/components/v2.js +1 -1
- package/lib/components.js +1 -1
- package/lib/constants/actions/index.d.ts +5 -1
- package/lib/constants/sampling/index.d.ts +4 -0
- package/lib/constants.js +1 -1
- package/lib/containers/_v2/_drawers/edit-source-drawer/sampling/index.d.ts +1 -1
- package/lib/containers/_v2/_forms/add-action-form/custom-fields/index.d.ts +3 -1
- package/lib/containers/_v2/_forms/add-action-form/dynamic-fields/index.d.ts +20 -0
- package/lib/containers/_v2/sampling-rules/helpers.d.ts +5 -4
- package/lib/containers/v2.js +155 -143
- package/lib/containers.js +1 -1
- package/lib/contexts/action-form-context.d.ts +1 -1
- package/lib/contexts/odigos-api/capabilities.d.ts +1 -0
- package/lib/contexts/odigos-api/hooks/use-actions-api.d.ts +12 -1
- package/lib/contexts/odigos-api/hooks/use-snapshots-api.d.ts +14 -6
- package/lib/contexts/odigos-api/types.d.ts +2 -1
- package/lib/contexts/odigos-api.js +1 -1
- package/lib/contexts.js +1 -1
- package/lib/functions.js +1 -1
- package/lib/hooks/useActionFormData.d.ts +1 -1
- package/lib/hooks/useInstrumentationRuleFormData.d.ts +1 -1
- package/lib/hooks.js +1 -1
- package/lib/snippets/v2.js +1 -1
- package/lib/snippets.js +1 -1
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types/actions/index.d.ts +40 -4
- package/lib/types/common/index.d.ts +2 -1
- package/lib/types.js +1 -1
- package/lib/visuals.js +1 -1
- package/package.json +1 -1
- package/lib/chunks/helpers-zByTbpzZ.js +0 -19
- package/lib/chunks/source-instrument-form-context-CowQuxT5.js +0 -1
- package/lib/chunks/use-odigos-api-UctF_jx_.js +0 -5
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{useMemo as e,useContext as t,createContext as r,useCallback as a,useState as n,useEffect as o}from"react";import{HttpLink as s,from as i,split as c,ApolloClient as d,InMemoryCache as u,ApolloProvider as l,useLazyQuery as E,useApolloClient as f,useQuery as T,gql as _}from"@apollo/client";import{jsx as S}from"react/jsx-runtime";import{onError as p}from"@apollo/client/link/error";import{setContext as y}from"@apollo/client/link/context";import{getMainDefinition as R}from"@apollo/client/utilities";import{W as m,F as O,p as A,o as I,Z as N,_ as C,E as h,c as g,b as L,h as P,$ as G,a0 as v,a1 as U,a2 as D,a3 as w,a4 as F,a5 as k,a6 as M}from"./ui-components-BDSEcaSZ.js";const b=e=>{if(!e)return!1;const t=e.toLowerCase();return t.includes("authentication required")||t.includes("authentication expired")||t.includes("http 401")},H=r(null),Y=()=>{const e=t(H);if(!e)throw new Error("[ui-kit] useOdigosApi() / useXxxApi() called outside of <OdigosApiProvider>. Make sure the host app mounts the provider at its layout level.");return e},W=({apolloConfig:t,operations:r,context:a,children:n})=>{const o=e(()=>(e=>{const t=new s({uri:e.httpUrl,credentials:e.credentials??"same-origin"}),r=p(({graphQLErrors:t,networkError:r})=>{t&&t.length>0&&t.some(e=>b(e.message))&&e.onAuthError?.(),r&&(401===r.statusCode||b(r.message))&&e.onAuthError?.()}),a=y(async(t,r)=>{const a={...r.headers};if(e.authHeader){const t=await e.authHeader();Object.assign(a,t)}return e.csrfHeader&&Object.assign(a,e.csrfHeader()),{headers:a}}),n=[];e.additionalLinks?.length&&n.push(...e.additionalLinks),n.push(a,r,t);let o=i(n);e.wsLink&&(o=c(({query:e})=>{const t=R(e);return"OperationDefinition"===t.kind&&"subscription"===t.operation},e.wsLink,o));const l=e.defaultFetchPolicies;return new d({link:o,cache:new u({addTypename:e.addTypename??!0,typePolicies:e.cacheTypePolicies}),defaultOptions:{watchQuery:{fetchPolicy:l?.watchQuery??"cache-and-network"},query:{fetchPolicy:l?.query??"cache-first"},mutate:{fetchPolicy:l?.mutate??"network-only"}}})})(t),[t.httpUrl,t.wsLink,t.addTypename,t.credentials]),E=e(()=>({operations:r,context:a,apolloConfig:t}),[r,a,t]);return S(l,{client:o,children:S(H.Provider,{value:E,children:n})})},x=H,K=(e,t)=>{if(e)return"string"==typeof e?e:N(e,t)},V=e=>{const{addNotification:t}=m(),r=(r,a,n,o,s)=>t({type:r,title:a,message:n,crdType:e,target:K(o,e),hideFromHistory:s});return{notify:r,notifyError:(e,t,a)=>r(I.Error,e,t,a),notifySuccess:(e,t,a)=>r(I.Success,e,t,a),notifyPending:(e,t)=>r(I.Default,"Pending",e,t,!0),notifyReadonly:()=>{t({type:I.Warning,title:A.READONLY,message:O.READONLY_WARNING,hideFromHistory:!0})}}},$=e=>{e({type:I.Warning,title:A.READONLY,message:O.READONLY_WARNING,hideFromHistory:!0})},B=e=>({error:e,results:[],allSucceeded:!1,anySucceeded:!1,successCount:0,failureCount:0}),j=(e,t)=>{if(e)return"function"==typeof e?e(t):e},q=e=>{if(!e)return"Unknown error";if(e instanceof Error)return e.cause instanceof Error?e.cause.message:e.message;if("object"==typeof e){const t=e;return t.cause?.message||t.message||String(e)}return String(e)},Q=(e,t)=>e.client??t,z=async(e,t,r,a,n)=>{if(!t)return{error:"Query operation not configured"};if(t.canRun&&!t.canRun(a))return{data:void 0};if(t.run)try{return await t.run(Q(t,e),r,a)}catch(e){return{error:q(e)}}const o=j(t.document,a);if(!o)return{error:"Query operation not supported in this context"};const s=t.transformVariables?t.transformVariables(r,a):r,i=Q(t,e);try{const e=await i.query({query:o,variables:s,fetchPolicy:n??"network-only"});return{data:t.transformResult?t.transformResult(e.data,a):e.data,error:e.error?q(e.error):void 0}}catch(e){return{error:q(e)}}},J=async(e,t,r,a)=>{if(!t)return{error:"Mutation operation not configured"};if(t.canRun&&!t.canRun(a))return{data:void 0};if(t.run)try{return await t.run(Q(t,e),r,a)}catch(e){return{error:q(e)}}const n=j(t.document,a);if(!n)return{error:"Mutation operation not supported in this context"};const o=t.transformVariables?t.transformVariables(r,a):r,s=Q(t,e);try{const e=await s.mutate({mutation:n,variables:o});return{data:t.transformResult?t.transformResult(e.data,a):e.data,error:void 0}}catch(e){return{error:q(e)}}},X=async(e,t,r,a,n)=>{if(!t)return B("Multi fetch operation not configured");if(!r.length)return B("No proxy ids supplied for multi fetch");const o=Q(t,e);if(t.transformVariablesMulti&&(t.documentMulti||t.document)){const e=t.transformVariablesMulti(r,a,n),s=[];for(const r of e)try{const e=await o.query({query:r.document,variables:r.variables,fetchPolicy:"network-only"});t.transformMultiResult?t.transformMultiResult(e.data,n).forEach(e=>s.push(e)):r.proxyIDs.forEach(t=>{s.push({proxyID:t,success:!e.error,data:e.data,error:e.error?.message})})}catch(e){const t=q(e);r.proxyIDs.forEach(e=>s.push({proxyID:e,success:!1,error:t}))}const i=s.filter(e=>e.success).length,c=s.length-i,d=Array.from(new Set(s.filter(e=>!!e.error).map(e=>e.error)));return{results:s,allSucceeded:0===c,anySucceeded:i>0,successCount:i,failureCount:c,error:d.length?d.join(", "):void 0}}const s=await Promise.all(r.map(async r=>{const o={...n,proxyID:r},s=await z(e,t,a,o);return{proxyID:r,success:!s.error,data:s.data,error:s.error}})),i=s.filter(e=>e.success).length,c=s.length-i,d=Array.from(new Set(s.filter(e=>!!e.error).map(e=>e.error)));return{results:s,allSucceeded:0===c,anySucceeded:i>0,successCount:i,failureCount:c,error:d.length?d.join(", "):void 0}},Z=_`
|
|
2
|
+
query OdigosApiNoop {
|
|
3
|
+
__typename
|
|
4
|
+
}
|
|
5
|
+
`,ee=(e,t)=>{if(e)return"function"==typeof e?e(t):e},te=(e,t)=>e[t],re=(e,t,r)=>{if(void 0===t)return;return e?.transformResult?e.transformResult(t,r):t},ae=(e,t,r)=>{if(!e)return;const a=e.transformVariables;return a?a(t,r):t},ne=(t,r,n)=>{const{operations:o,context:s}=Y(),i=te(o,t),c=e(()=>ee(i?.document,s),[i,s]),d=e(()=>ae(i,r,s),[i,r,s]),u=!i||!c,l=!!i?.canRun&&!i.canRun(s),E=n?.skip||u||l,f=T(c??Z,{variables:d,skip:E,pollInterval:n?.pollInterval,fetchPolicy:n?.fetchPolicy??"cache-and-network",notifyOnNetworkStatusChange:n?.notifyOnNetworkStatusChange,client:i?.client,onCompleted:n?.onCompleted?e=>{const t=re(i,e,s);void 0!==t&&n.onCompleted(t)}:void 0,onError:n?.onError}),_=e(()=>{if(!E)return re(i,f.data,s)},[i,s,f.data,E]),S=a(async()=>{if(u)return{data:void 0};const e=await f.refetch();return{data:re(i,e.data,s)}},[i,s,f,u]);return{data:_,loading:!E&&f.loading,error:f.error,refetch:S,unsupported:u}},oe=(t,r)=>{const{operations:n,context:o}=Y(),s=te(n,t),i=e(()=>ee(s?.document,o),[s,o]),c=!s||!i,[d,u]=E(i??Z,{fetchPolicy:r?.fetchPolicy??"network-only",notifyOnNetworkStatusChange:r?.notifyOnNetworkStatusChange,client:s?.client});return{execute:a(async e=>{if(c)return{error:void 0};if(s?.canRun&&!s.canRun(o))return{data:void 0};const t=ae(s,e,o),r=await d({variables:t});return r.error?{error:r.error}:{data:re(s,r.data,o)}},[s,o,d,c]),data:e(()=>re(s,u.data,o),[s,o,u.data]),loading:u.loading,error:u.error,called:u.called,unsupported:c}},se=(t,r)=>{const{operations:o,context:s}=Y(),i=f(),c=te(o,t),d=e(()=>ee(c?.document,s),[c,s]),u=!c||!d,[l,E]=n({loading:!1,called:!1}),T=a(()=>E({loading:!1,called:!1}),[]);return[a(async e=>{if(u||!d)return{error:void 0};if(c?.canRun&&!c.canRun(s))return{data:void 0};const t=ae(c,e,s),a=c?.client??i;E(e=>({...e,loading:!0,called:!0}));try{const e=await a.mutate({mutation:d,variables:t}),n=re(c,e.data,s);if(E({data:n,loading:!1,error:void 0,called:!0}),r?.refetchQueries){const e=a.refetchQueries({include:r.refetchQueries});r?.awaitRefetchQueries&&await e}return void 0!==n&&r?.onCompleted?.(n),{data:n}}catch(e){const t=e;return E({data:void 0,loading:!1,error:t,called:!0}),r?.onError?.(t),{error:t}}},[c,s,i,d,u,r]),{data:l.data,loading:l.loading,error:l.error,called:l.called,unsupported:u,reset:T}]},ie=[],ce=(e,t,r,a)=>{let n=!0;const o={sources:[]};for(const[s,i]of Object.entries(e)){if(!i.length)continue;n=!1;const e=i.map(({id:e,selected:t,currentStreamName:a})=>({namespace:e.namespace,name:e.name,kind:e.kind,selected:void 0!==t&&t,currentStreamName:a||r}));let c=0,d=0;for(const r of e){const e=t.find(e=>e.id.namespace===s&&e.id.name===r.name&&e.id.kind===r.kind),a=e?.dataStreamNames||[];r.selected&&!e?c++:!r.selected&&e&&a.length<=1&&d++}a(c,d),o.sources.push(...e)}return{payload:o,isEmpty:n}},de=(e,t)=>{let r=!0;const a={namespaces:[]};for(const[n,{selected:o,currentStreamName:s}]of Object.entries(e))"boolean"==typeof o&&(r=!1,a.namespaces.push({namespace:n,selected:o,currentStreamName:s||t}));return{payload:a,isEmpty:r}},ue={filter:{markedForInstrumentation:!0}},le=[],Ee=[],fe=[],Te=async e=>{const t=(e=>{try{return new URL("/diagnose/download",e).toString()}catch{return null}})(e.httpUrl);if(t)try{const[r,a]=await Promise.all([Promise.resolve(e.authHeader?.()??{}),Promise.resolve(e.csrfHeader?.()??{})]),n=await fetch(t,{credentials:e.credentials??"same-origin",headers:{...r,...a}});if(!n.ok)throw new Error(`Failed to download diagnose archive: ${n.status} ${n.statusText}`);((e,t)=>{if("undefined"==typeof document)return;const r=URL.createObjectURL(e),a=document.createElement("a");a.href=r,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(r)})(await n.blob(),`odigos-diagnose-${Date.now()}.tar.gz`)}catch(e){}},_e=[],Se=[],pe=e=>{if(!e)return;return{clusters:[e],totalNamespaces:e.namespaces?.length??0,totalWorkloads:(e.namespaces??[]).reduce((e,t)=>e+(t.workloads?.length??0),0),lastUpdated:e.timestamp}},ye=[],Re=[],me=(e,t)=>({...e,fields:e.fields.filter(({value:e})=>void 0!==e),currentStreamName:t}),Oe=()=>{const{operations:t,context:r}=Y(),n=f(),s=((e,t)=>{const r=f(),{notifyError:n,notifySuccess:o,notifyPending:s,notifyReadonly:i}=V(h.Source),{selectedStreamName:c}=P(),{setProgress:d,resetProgress:u}=G(),{setConfiguredSources:l,setConfiguredFutureApps:E}=v(),T=(e,t)=>{const{progress:r}=G.getState();e>0&&d(U.Instrumenting,{total:(r[U.Instrumenting]?.total||0)+e,current:r[U.Instrumenting]?.current||0}),t>0&&d(U.Uninstrumenting,{total:(r[U.Uninstrumenting]?.total||0)+t,current:r[U.Uninstrumenting]?.current||0})},_=a(async()=>{const{error:a}=await z(r,e.GET_WORKLOADS,ue,t);a&&n(C.Read,a)},[r,e.GET_WORKLOADS,t,n]);return{useSources:()=>{const e=ne("GET_WORKLOADS",ue,{fetchPolicy:"cache-first"});return{items:e.data?.workloads??le,loading:e.loading,refetch:_}},fetchAll:_,fetchByTargets:async(a,o)=>{const s=!!o?.slim,i=a.map(e=>D(e,h.Source)).filter(e=>e.namespace&&e.name&&e.kind);if(0===i.length)return;if(i.length>50)return void await _();const c=s&&e.GET_WORKLOADS_BY_IDS_SLIM?e.GET_WORKLOADS_BY_IDS_SLIM:e.GET_WORKLOADS_BY_IDS,{error:d}=await z(r,c,{ids:i.map(({namespace:e,kind:t,name:r})=>({namespace:e,kind:t,name:r}))},t);d?n(C.Read,d):await _()},fetchById:async a=>{const{data:o,error:s}=await z(r,e.GET_WORKLOADS_BY_IDS,{ids:[{namespace:a.namespace,kind:a.kind,name:a.name}]},t);if(!s)return o?.workloadsByIds?.find(e=>e.id.namespace===a.namespace&&e.id.kind===a.kind&&e.id.name===a.name);n(C.Read,s)},fetchLibraries:async a=>z(r,e.GET_SOURCE_LIBRARIES,a,t),fetchPeerSources:async a=>z(r,e.GET_PEER_SOURCES,{serviceName:a},t),usePeerSources:(e,t)=>ne("GET_PEER_SOURCES",e,t),persist:async(a,o)=>{if(t.isReadonly)return i();const{data:d}=await z(r,e.GET_WORKLOADS,ue,t,"cache-first"),f=d?.workloads??le,{payload:_,isEmpty:S}=ce(a,f,c,T),{payload:p,isEmpty:y}=de(o,c);let R=!1;S||(R=!0,s("Persisting sources...")),y||R||s("Persisting namespaces...");const{error:m}=await J(r,e.PERSIST_SOURCES,_,t);if(m&&(u(U.Instrumenting),u(U.Uninstrumenting),n(C.Update,m)),e.PERSIST_NAMESPACES){const{error:a}=await J(r,e.PERSIST_NAMESPACES,p,t);a&&n(C.Update,a)}l({}),E({})},persistV2:async a=>{if(t.isReadonly)return i(),{error:"readonly"};const n=[];for(const[,o]of Object.entries(a)){const a={sources:[]},s={namespaces:[]};for(const e of o)e.name&&e.kind?a.sources.push(e):s.namespaces.push(e);if(s.namespaces.length>0&&e.PERSIST_NAMESPACES){const{error:a}=await J(r,e.PERSIST_NAMESPACES,s,t);a&&n.push(a)}if(a.sources.length>0){const{error:o}=await J(r,e.PERSIST_SOURCES,a,t);o&&n.push(o)}}return n.length?{error:n.join(", ")}:void 0},update:async(a,d)=>{if(t.isReadonly)return i();s("Updating source...");const u={sourceId:a,patchSourceRequest:{...d,currentStreamName:c}},{data:l,error:E}=await J(r,e.UPDATE_SOURCE,u,t);E?n(C.Update,E,a):l?.updateK8sActualSource&&o(C.Update,`Successfully updated "${a.name}" source`,a)},restartWorkloads:async a=>{if(t.isReadonly)return i();s("Restarting sources...");const{data:c,error:d}=await J(r,e.RESTART_WORKLOADS,{sourceIds:a},t);d?n(C.Update,d):c?.restartWorkloads&&o(C.Update,`Successfully restarted ${a.length} sources`)},restartPod:async(a,c)=>{if(t.isReadonly)return i();s("Restarting pod...");const{data:d,error:u}=await J(r,e.RESTART_POD,{namespace:a,name:c},t);u?n(C.Update,u):d?.restartPod&&o(C.Update,`Successfully restarted pod ${a}/${c}`)},recoverFromRollback:async a=>{if(t.isReadonly)return i();s("Recovering from rollback...");const{data:c,error:d}=await J(r,e.RECOVER_FROM_ROLLBACK,{sourceId:a},t);d?n(C.Update,d,a):c?.recoverFromRollbackForWorkload&&o(C.Update,"Successfully triggered recovery from rollback")}}})(t,r),i=((e,t)=>{const r=f(),{notifyError:a,notifySuccess:n,notifyReadonly:o}=V(h.Destination),{selectedStreamName:s}=P(),i=async()=>{const{error:n}=await z(r,e.GET_DESTINATIONS,void 0,t);n&&a(C.Read,n)};return{useDestinations:()=>{const e=ne("GET_DESTINATIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.destinations??e.data?.destinations??Re,loading:e.loading,refetch:i}},useDestinationCategories:()=>{const e=ne("GET_DESTINATION_CATEGORIES",void 0);return{data:e.data,loading:e.loading}},usePotentialDestinations:()=>{const e=ne("GET_POTENTIAL_DESTINATIONS",void 0);return{data:e.data,loading:e.loading}},fetchAll:i,testConnection:async a=>{const{data:n}=await J(r,e.TEST_DESTINATION_CONNECTION,{destination:me(a,s)},t);return n},create:async c=>{if(t.isReadonly)return o();const{error:d}=await J(r,e.CREATE_DESTINATION,{destination:me(c,s)},t);d?a(C.Create,d):(n(C.Create,`Successfully created "${c.type}" destination`),await i())},update:async(c,d)=>{if(t.isReadonly)return o();const{data:u,error:l}=await J(r,e.UPDATE_DESTINATION,{id:c,destination:me(d,s)},t);l?a(C.Update,l,c):u?.updateDestination&&(n(C.Update,`Successfully updated "${d.type}" destination`,c),await i())},remove:async c=>{if(t.isReadonly)return o();const{data:d}=await z(r,e.GET_DESTINATIONS,void 0,t,"cache-first"),u=d?.computePlatform?.destinations??d?.destinations??Re,l=u.find(e=>F(e)===c)?.destinationType?.type,{error:E}=await J(r,e.DELETE_DESTINATION,{id:c,currentStreamName:s},t);E?a(C.Delete,E,c):(n(C.Delete,`Successfully deleted "${l??c}" destination`,c),await i())}}})(t,r),c=((t,r)=>{const a=f(),{notifyError:n,notifySuccess:o,notifyReadonly:s}=V(h.Action),i=async()=>{const{error:e}=await z(a,t.GET_ACTIONS,void 0,r);e&&n(C.Read,e)};return{useActions:()=>{const e=ne("GET_ACTIONS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.actions??e.data?.actions??Ee,loading:e.loading,refetch:i}},useActionTypes:()=>{const t=ne("GET_ACTION_TYPES",void 0,{fetchPolicy:"cache-first"});return{options:e(()=>w(t.data)||fe,[t.data]),loading:t.loading}},fetchAll:i,create:async e=>{if(r.isReadonly)return s();if(!t.CREATE_ACTION)return;const{error:c}=await J(a,t.CREATE_ACTION,{action:e},r);c?n(C.Create,c):(o(C.Create,`Successfully created "${e.type}" action`),await i())},update:async(e,c)=>{if(r.isReadonly)return s();if(!t.UPDATE_ACTION)return;const{error:d}=await J(a,t.UPDATE_ACTION,{id:e,action:c},r);d?n(C.Update,d,e):(o(C.Update,`Successfully updated "${c.type}" action`,e),await i())},remove:async(e,c)=>{if(r.isReadonly)return s();if(!t.DELETE_ACTION)return;const{error:d}=await J(a,t.DELETE_ACTION,{id:e,actionType:c},r);d?n(C.Delete,d,e):(o(C.Delete,`Successfully deleted "${c}" action`,e),await i())}}})(t,r),d=((t,r)=>{const a=f(),{notifyError:n,notifySuccess:o,notifyReadonly:s}=V(h.InstrumentationRule),i=async()=>{const{error:e}=await z(a,t.GET_INSTRUMENTATION_RULES,void 0,r);e&&n(C.Read,e)};return{useRules:()=>{const t=ne("GET_INSTRUMENTATION_RULES",void 0,{fetchPolicy:"cache-first"});return{items:e(()=>(t.data?.computePlatform?.instrumentationRules??t.data?.instrumentationRules??[]).map(M),[t.data]),loading:t.loading,refetch:i}},fetchAll:i,create:async(e,c)=>{if(r.isReadonly)return s();if(!t.CREATE_INSTRUMENTATION_RULE)return;const{error:d}=await J(a,t.CREATE_INSTRUMENTATION_RULE,{instrumentationRule:k(e)},r);d?n(C.Create,d):(o(C.Create,`Successfully created${c?` "${c}"`:""} rule`),await i())},update:async(e,c,d)=>{if(r.isReadonly)return s();if(!t.UPDATE_INSTRUMENTATION_RULE)return;const{error:u}=await J(a,t.UPDATE_INSTRUMENTATION_RULE,{ruleId:e,instrumentationRule:k(c)},r);u?n(C.Update,u,e):(o(C.Update,`Successfully updated${d?` "${d}"`:""} rule`,e),await i())},remove:async(e,c)=>{if(r.isReadonly)return s();if(!t.DELETE_INSTRUMENTATION_RULE)return;const{error:d}=await J(a,t.DELETE_INSTRUMENTATION_RULE,{ruleId:e},r);d?n(C.Delete,d,e):(o(C.Delete,`Successfully deleted${c?` "${c}"`:""} rule`,e),await i())}}})(t,r),u=((e,t)=>{const r=f(),{addNotification:a}=m(),{setDataStreams:n}=P(),s=(e,t)=>a({type:I.Error,title:e,message:t}),i=async()=>{const{data:a,error:o}=await z(r,e.GET_DATA_STREAMS,void 0,t);if(o)s(C.Read,o);else if(a){const e=a.computePlatform?.dataStreams??a.dataStreams??[];n(e)}},c=e.CREATE_DATA_STREAM?async n=>{if(t.isReadonly)return $(a);const{error:o}=await J(r,e.CREATE_DATA_STREAM,{stream:n},t);o?s(C.Create,o):await i()}:void 0;return{useDataStreams:()=>{const e=ne("GET_DATA_STREAMS",void 0,{fetchPolicy:"cache-first"}),t=e.data?.computePlatform?.dataStreams??e.data?.dataStreams??ye;return o(()=>{n(t)},[JSON.stringify(t.map(e=>e.name))]),{items:t,loading:e.loading,refetch:i}},fetchAll:i,create:c,update:async(n,o)=>{if(t.isReadonly)return $(a);const{error:c}=await J(r,e.UPDATE_DATA_STREAM,{id:n,dataStream:o},t);c?s(C.Update,c):await i()},remove:async n=>{if(t.isReadonly)return $(a);const{error:o}=await J(r,e.DELETE_DATA_STREAM,{id:n},t);o?s(C.Delete,o):await i()}}})(t,r),l=((e,t)=>{const r=f(),{notifyError:a,notifyReadonly:n}=V(h.Namespace),o=async()=>{const n=await z(r,e.GET_NAMESPACES_WITH_WORKLOADS,void 0,t);return n.error&&a(C.Read,n.error),n};return{useNamespaces:()=>{const e=ne("GET_NAMESPACES_WITH_WORKLOADS",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.namespaces??Se,loading:e.loading,refetch:o}},fetchAll:o,persist:async o=>{if(t.isReadonly)return n();const{error:s}=await J(r,e.PERSIST_NAMESPACES,o,t);return s&&a(C.Update,s),s?{error:s}:void 0}}})(t,r),E=((e,t)=>{const r=f(),{notifyError:a}=V(h.Source);return{fetch:async n=>{const o=await z(r,e.GET_K8S_MANIFEST,n,t);return o.error&&a(C.Read,o.error),o}}})(t,r),T=((e,t)=>{const r=f(),{notifyError:a,notifySuccess:n,notifyReadonly:o}=V(h.Source);return{useEffectiveConfig:(e,t)=>ne("GET_EFFECTIVE_CONFIG",e,t),useConfigYamls:e=>ne("GET_CONFIG_YAMLS",void 0,e),getEffectiveConfig:async a=>e.GET_EFFECTIVE_CONFIG?z(r,e.GET_EFFECTIVE_CONFIG,{id:a},t):{error:"GET_EFFECTIVE_CONFIG not configured"},applyConfigurations:e.UPDATE_REMOTE_CONFIG?async(n,s)=>{if(t.isReadonly)return o();const{error:i}=await J(r,e.UPDATE_REMOTE_CONFIG,{formData:n,connectionIds:s},t);return i&&a(C.Update,i),i?{error:i}:void 0}:void 0,getConfigYamls:e.GET_CONFIG_YAMLS?async()=>z(r,e.GET_CONFIG_YAMLS,void 0,t):void 0,updateLocalUiConfig:e.UPDATE_LOCAL_UI_CONFIG?async s=>{if(t.isReadonly)return o();const{error:i}=await J(r,e.UPDATE_LOCAL_UI_CONFIG,{config:s},t);return i?a(C.Update,i):n(C.Update,"Local UI configuration updated successfully"),i?{error:i}:void 0}:void 0,resetLocalUiConfigToDefaults:e.RESET_LOCAL_UI_CONFIG_TO_FACTORY_DEFAULTS?async()=>{if(t.isReadonly)return o();const{error:s}=await J(r,e.RESET_LOCAL_UI_CONFIG_TO_FACTORY_DEFAULTS,void 0,t);return s?a(C.Update,s):n(C.Update,"Local UI configuration reset to factory defaults"),s?{error:s}:void 0}:void 0}})(t,r),_=((e,t)=>{const r=f(),{apolloConfig:a}=Y();return{fetchDescribeOdigos:e.GET_DESCRIBE_ODIGOS?async()=>z(r,e.GET_DESCRIBE_ODIGOS,void 0,t):void 0,fetchDescribeSource:e.GET_DESCRIBE_SOURCE?async a=>z(r,e.GET_DESCRIBE_SOURCE,a,t):void 0,downloadDiagnose:e.GET_DIAGNOSE?async(n,o)=>{const s=await z(r,e.GET_DIAGNOSE,{input:n,dryRun:o?.dryRun??!1},t),i=s?.data?.stats?.fileCount??0;return!s.error&&i>0&&!o?.dryRun&&await Te(a),s}:void 0}})(t,r),S=((e,t)=>{const r=f(),{notifyError:a,notifyReadonly:n}=V(h.Source),o=async()=>{e.GET_TOKENS&&await z(r,e.GET_TOKENS,void 0,t)};return{useTokens:()=>{const e=ne("GET_TOKENS",void 0,{fetchPolicy:"cache-first"});return{items:e.data??ie,loading:e.loading,refetch:o}},updateToken:e.UPDATE_TOKEN?async o=>{if(t.isReadonly)return n();const{error:s}=await J(r,e.UPDATE_TOKEN,{token:o},t);return s&&a(C.Update,s),s?{error:s}:void 0}:void 0}})(t,r),p=((e,t)=>{const r=f();return{useMetrics:e=>ne("GET_METRICS",void 0,e),fetch:async()=>z(r,e.GET_METRICS,void 0,t)}})(t,r),y=((e,t)=>{const r=f();return{useServiceMap:e=>ne("GET_SERVICE_MAP",void 0,e),fetch:e.GET_SERVICE_MAP?async()=>z(r,e.GET_SERVICE_MAP,void 0,t):void 0}})(t,r),R=((e,t)=>{const r=f();return{useSlots:e=>ne("GET_PROFILING_SLOTS",void 0,e),useSourceProfiling:(e,t)=>ne("GET_SOURCE_PROFILING",e,t),fetchSlots:e.GET_PROFILING_SLOTS?async()=>z(r,e.GET_PROFILING_SLOTS,void 0,t):void 0,fetchSourceProfiling:e.GET_SOURCE_PROFILING?async a=>z(r,e.GET_SOURCE_PROFILING,a,t):void 0,enableProfiling:e.ENABLE_SOURCE_PROFILING?async a=>J(r,e.ENABLE_SOURCE_PROFILING,a,t):void 0}})(t,r),O=((e,t)=>{const r=f();return{useGatewayInfo:e=>ne("GET_GATEWAY_INFO",void 0,e),useGatewayPods:e=>ne("GET_GATEWAY_PODS",void 0,e),useNodeCollectorInfo:e=>ne("GET_NODE_COLLECTOR_INFO",void 0,e),useNodeCollectorPods:e=>ne("GET_NODE_COLLECTOR_PODS",void 0,e),usePodInfo:(e,t)=>ne("GET_COLLECTOR_POD_INFO",e,t),getGatewayInfo:e.GET_GATEWAY_INFO?async()=>z(r,e.GET_GATEWAY_INFO,void 0,t):void 0,getGatewayPods:e.GET_GATEWAY_PODS?async()=>z(r,e.GET_GATEWAY_PODS,void 0,t):void 0,getNodeCollectorInfo:e.GET_NODE_COLLECTOR_INFO?async()=>z(r,e.GET_NODE_COLLECTOR_INFO,void 0,t):void 0,getNodeCollectorPods:e.GET_NODE_COLLECTOR_PODS?async()=>z(r,e.GET_NODE_COLLECTOR_PODS,void 0,t):void 0,getExtendedPodInfo:e.GET_COLLECTOR_POD_INFO?async(a,n)=>z(r,e.GET_COLLECTOR_POD_INFO,{namespace:a,name:n},t):void 0}})(t,r),A=((e,t)=>{const r=f(),{notifyError:a,notifySuccess:n,notifyReadonly:o}=V(h.SamplingRule),s=async()=>{e.GET_SAMPLING_RULES&&await z(r,e.GET_SAMPLING_RULES,void 0,t)},i=(e,i)=>e?async c=>{if(t.isReadonly)return o();const{error:d}=await J(r,e,c,t);return d?a(i,d):(n(C.Create,"Successfully created sampling rule"),await s()),d?{error:d}:void 0}:void 0,c=(e,i)=>e?async(c,d)=>{if(t.isReadonly)return o();const{error:u}=await J(r,e,{samplingId:d.samplingId,ruleId:c,rule:d.rule},t);return u?a(i,u):(n(C.Update,"Successfully updated sampling rule"),await s()),u?{error:u}:void 0}:void 0,d=e=>e?async(i,c)=>{if(t.isReadonly)return o();const{error:d}=await J(r,e,{samplingId:c,ruleId:i},t);return d?a(C.Delete,d):(n(C.Delete,"Successfully deleted sampling rule"),await s()),d?{error:d}:void 0}:void 0;return{useSamplingRules:()=>{const e=ne("GET_SAMPLING_RULES",void 0,{fetchPolicy:"cache-first"});return{items:e.data?.computePlatform?.samplingRules??e.data?.samplingRules??_e,k8sHealthProbesConfig:e.data?.computePlatform?.k8sHealthProbesConfig??e.data?.k8sHealthProbesConfig??null,loading:e.loading,refetch:s}},fetchAll:e.GET_SAMPLING_RULES?async()=>z(r,e.GET_SAMPLING_RULES,void 0,t):void 0,createNoisy:i(e.CREATE_NOISY_OPERATION_RULE,C.Create),updateNoisy:c(e.UPDATE_NOISY_OPERATION_RULE,C.Update),deleteNoisy:d(e.DELETE_NOISY_OPERATION_RULE),createHighlyRelevant:i(e.CREATE_HIGHLY_RELEVANT_OPERATION_RULE,C.Create),updateHighlyRelevant:c(e.UPDATE_HIGHLY_RELEVANT_OPERATION_RULE,C.Update),deleteHighlyRelevant:d(e.DELETE_HIGHLY_RELEVANT_OPERATION_RULE),createCostReduction:i(e.CREATE_COST_REDUCTION_RULE,C.Create),updateCostReduction:c(e.UPDATE_COST_REDUCTION_RULE,C.Update),deleteCostReduction:d(e.DELETE_COST_REDUCTION_RULE),updateK8sHealthProbesConfig:e.UPDATE_LOCAL_UI_SAMPLING_CONFIG?async n=>{if(t.isReadonly)return o();const{error:i}=await J(r,e.UPDATE_LOCAL_UI_SAMPLING_CONFIG,{config:{k8sHealthProbesSampling:n}},t);return i?a(C.Update,i):await s(),i?{error:i}:void 0}:void 0}})(t,r),N=((t,r)=>{const n=f();return{useSnapshots:()=>{const t=r.proxyID,n=!!t,o=ne("GET_ALL_CLUSTER_SNAPSHOTS",void 0,{fetchPolicy:"cache-first",skip:n}),s=ne("GET_CLUSTER_SNAPSHOT",t?{clusterId:t}:void 0,{fetchPolicy:"cache-first",skip:!n}),i=e(()=>n?pe(s.data):o.data,[n,s.data,o.data]),c=a(async()=>{if(!n)return o.refetch();const{data:e}=await s.refetch();return{data:pe(e)}},[n,o.refetch,s.refetch]);return{data:i,loading:n?s.loading:o.loading,unsupported:n?s.unsupported:o.unsupported,refetch:c}},getAllClusterSnapshots:t.GET_ALL_CLUSTER_SNAPSHOTS?async()=>z(n,t.GET_ALL_CLUSTER_SNAPSHOTS,void 0,r):void 0,getClusterSnapshot:t.GET_CLUSTER_SNAPSHOT?async e=>z(n,t.GET_CLUSTER_SNAPSHOT,{clusterId:e},r):void 0}})(t,r);return{sourcesApi:s,destinationsApi:i,actionsApi:c,instrumentationRulesApi:d,dataStreamsApi:u,namespacesApi:l,k8sManifestApi:E,configApi:T,describeApi:_,tokensApi:S,metricsApi:p,serviceMapApi:y,profilingApi:R,collectorsApi:O,samplingApi:A,snapshotsApi:N,capabilities:e(()=>((e,t)=>{const r=t.platformType===g.Vm,a=t.tier===L.Onprem,n=!r;return{canBulkPersistSources:n&&!!e.PERSIST_SOURCES,canInstrumentNamespaces:n&&!!e.PERSIST_NAMESPACES,canFetchSnapshots:n&&!!e.GET_ALL_CLUSTER_SNAPSHOTS,canRecoverFromRollback:n&&!!e.RECOVER_FROM_ROLLBACK,canRestartWorkloads:n&&!!e.RESTART_WORKLOADS,canFetchPeerSources:!!e.GET_PEER_SOURCES,canFetchSourceLibraries:!!e.GET_SOURCE_LIBRARIES,canFetchK8sManifest:n&&!!e.GET_K8S_MANIFEST,canCreateDestination:!!e.CREATE_DESTINATION,canTestConnection:n&&!!e.TEST_DESTINATION_CONNECTION,canFetchDestinationCategories:!!e.GET_DESTINATION_CATEGORIES,canFetchPotentialDestinations:n&&!!e.GET_POTENTIAL_DESTINATIONS,canCreateAction:!!e.CREATE_ACTION,canFetchActionTypes:!!e.GET_ACTION_TYPES,canCreateInstrumentationRule:!!e.CREATE_INSTRUMENTATION_RULE,canApplyEffectiveConfig:n&&!!e.UPDATE_REMOTE_CONFIG&&!!e.GET_EFFECTIVE_CONFIG,canFetchEffectiveConfig:!!e.GET_EFFECTIVE_CONFIG,canFetchConfigYamls:!!e.GET_CONFIG_YAMLS,canFetchProfiling:n&&!!e.GET_PROFILING_SLOTS,canFetchCollectorInfo:n&&!!e.GET_GATEWAY_INFO,canManageSamplingRules:!!e.GET_SAMPLING_RULES,isEnterprise:a,isVm:r}})(t,r),[t,r]),resetCache:a(async()=>{await n.cache.reset()},[n])}};export{W as O,x as _,ce as a,se as b,ne as c,Oe as d,Y as e,X as f,de as p,J as r,oe as u};
|
package/lib/components/v2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{eG as Autocomplete,R as Badge,B as Button,z as ButtonSize,go as ButtonTab,gp as ButtonTabList,L as ButtonVariants,V as Checkbox,gq as CheckboxList,dh as CheckboxSize,bg as CliCommand,bb as Condition,a$ as Conditions,gr as DEFAULT_TIME_UNITS,a_ as DataCard,af as Drawer,bV as DropData,bX as DropDataAlignX,bW as DropDataAlignY,aP as DropDown,a9 as FieldMessage,a8 as FieldTitle,dz as GaugeChart,gs as GaugeChartVariant,gt as Header,gu as HoverActions,aQ as IconButton,aR as IconButtonSize,w as IconGroup,am as Input,ae as InputList,aa as InputTable,bw as Island,aS as Loader,b_ as Modal,gv as Navbar,N as NoData,Y as Note,aj as Radio,gw as RadioGroup,al as RadioSize,U as Search,aI as SectionCard,gx as SectionCardSize,M as Segment,aq as SegmentSize,bs as SegmentVariant,dy as StatusCard,db as Stepper,bu as Table,bv as TableVariant,b5 as Tag,bf as TagVariants,ar as TextArea,dA as TextCard,dT as TimeInput,ac as Toggle,ad as ToggleLabelAlign,gy as ToggleList,aV as ToggleSize,gz as ToggleVariant,ap as TruncatableTypography,T as Typography,O as TypographyColor,a as TypographySize,aW as TypographyVariants,az as WarningModal,gA as resolveTypographyColor}from"../chunks/ui-components-BDSEcaSZ.js";import"react/jsx-runtime";import"styled-components";import"../icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"../chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
package/lib/components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{aO as CenterThis,eM as Code,an as Divider,g4 as ErrorBoundary,g5 as FadeLoader,a7 as FlexColumn,y as FlexRow,g6 as IconButton,g7 as IconGroup,g8 as IconWrapped,g9 as ImageControlled,ga as LoadingText,gb as ModalBody,gc as NotificationNote,gd as Overlay,aM as Padding,da as PageContent,P as Popup,ge as ScrollX,Q as ScrollY,aN as SkeletonLoader,gf as TableContainer,gg as TableTitleWrap,gh as TableWrap,gi as Text,gj as ToggleCodeComponent,av as Tooltip,dB as UpgradeRequiredWrapper,gk as VerticalScroll,gl as getLinksFromText,gm as getStrongsFromText,gn as renderText}from"./chunks/ui-components-BDSEcaSZ.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
import { type ActionOption } from '@/types';
|
|
1
|
+
import { type GetActionTypesResult, PlatformType, type ActionOption } from '@/types';
|
|
2
2
|
export declare const ACTION_OPTIONS: ActionOption[];
|
|
3
|
+
export declare const isActionSupportedOnPlatform: (option: ActionOption, platformType: PlatformType) => boolean;
|
|
4
|
+
export declare const isActionSupportedOnVersion: (option: ActionOption, platformType: PlatformType, currentVersion: string) => boolean;
|
|
5
|
+
export declare const getSupportedActionOptions: (platformType: PlatformType, currentVersion: string) => ActionOption[];
|
|
6
|
+
export declare const mapActionTypesToOptions: (result?: GetActionTypesResult | null) => ActionOption[];
|
|
@@ -89,6 +89,10 @@ export declare const SAMPLING_AUTO_RULE_TITLE = "Kubernetes Health Probes";
|
|
|
89
89
|
export declare const SAMPLING_HIGHLY_RELEVANT_AUTO_RULE_TITLE = "Keep All Error Traces";
|
|
90
90
|
export declare const SAMPLING_COST_REDUCTION_AUTO_RULE_TITLE = "Drop Traces Cluster-Wide";
|
|
91
91
|
export declare const SAMPLING_DUPLICATE_RULE_WARNING = "A rule with the same matching conditions already exists.";
|
|
92
|
+
export declare const SAMPLING_DEFAULT_CONFIRM_TITLE = "Create this rule as-is?";
|
|
93
|
+
export declare const SAMPLING_DEFAULT_CONFIRM_DESCRIPTION = "This rule still uses the default configuration.\nDo you want to create it anyway?";
|
|
94
|
+
export declare const SAMPLING_DEFAULT_CONFIRM_PREVIEW_LABEL = "Rule preview";
|
|
95
|
+
export declare const BTN_CONTINUE_EDITING = "Continue editing";
|
|
92
96
|
export declare const CREATE_NOISY_AUTO_RULE_DRAWER_TITLE = "Create 'Noisy Operation Kubernetes Health Probes' rule";
|
|
93
97
|
export declare const EDIT_NOISY_AUTO_RULE_DRAWER_TITLE = "Edit 'Noisy Operation Kubernetes Health Probes' rule";
|
|
94
98
|
export declare const EDIT_NOISY_AUTO_RULE_DRAWER_SUBTITLE = "Automatically detect and sample health probe traces across the cluster.";
|
package/lib/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{A as ACTION_OPTIONS,
|
|
1
|
+
export{A as ACTION_OPTIONS,fH as ALL_SOURCES,bz as BTN_CANCEL,bH as BTN_CONTINUE_EDITING,dF as BTN_CREATE_FIRST_RULE,bx as BTN_CREATE_RULE,bC as BTN_DELETE_RULE,dV as BTN_EDIT_AUTO_RULE,bB as BTN_EDIT_RULE,bR as BTN_SAVE,bA as BTN_SAVE_RULE,aZ as BUTTON_TEXTS,bD as CATEGORY_DESCRIPTIONS,ew as CATEGORY_LABELS,bG as CATEGORY_TITLES,fI as CREATE_COST_REDUCTION_AUTO_RULE_DRAWER_TITLE,fJ as CREATE_HIGHLY_RELEVANT_AUTO_RULE_DRAWER_TITLE,fK as CREATE_NOISY_AUTO_RULE_DRAWER_TITLE,aY as DEFAULT_CLUSTER_ID,aX as DEFAULT_CLUSTER_NAME,dt as DEFAULT_DATA_STREAM_NAME,d$ as DESC_DURATION,fL as DESC_ERRORS,e2 as DESC_OPERATION,fM as DESC_PERCENTAGE_HIGHLY_RELEVANT,aE as DESC_PERCENTAGE_NOISY,ex as DESC_RULE_TYPE,eF as DESC_SOURCE_SCOPE,aT as DESTINATION_CATEGORIES,ax as DISPLAY_LANGUAGES,p as DISPLAY_TITLES,as as DOCS_BASE_URL,D as DestinationCategoryTypes,bN as EDIT_COST_REDUCTION_AUTO_RULE_DRAWER_SUBTITLE,bO as EDIT_COST_REDUCTION_AUTO_RULE_DRAWER_TITLE,bL as EDIT_HIGHLY_RELEVANT_AUTO_RULE_DRAWER_SUBTITLE,bM as EDIT_HIGHLY_RELEVANT_AUTO_RULE_DRAWER_TITLE,bP as EDIT_NOISY_AUTO_RULE_DRAWER_SUBTITLE,bQ as EDIT_NOISY_AUTO_RULE_DRAWER_TITLE,bE as EDIT_TITLES,ee as EMPTY_VALUE,ak as EXTRACTION_FORMAT_COPY,ah as EXTRACT_ATTRIBUTE_FORM,dD as FILTER_TYPE_ALL,F as FORM_ALERTS,I as INSTRUMENTATION_RULE_OPTIONS,e0 as LABEL_CUSTOM_DURATION,aJ as LABEL_CUSTOM_PERCENTAGE,aH as LABEL_DISABLED,dC as LABEL_DISABLED_RULE,eo as LABEL_DROP_ALL,aB as LABEL_DROP_AT_MOST,aG as LABEL_ENABLED,e7 as LABEL_HTTP_ROUTE,e9 as LABEL_HTTP_ROUTE_PREFIX,eb as LABEL_KAFKA_TOPIC,ep as LABEL_KEEP_ALL,el as LABEL_KEEP_AT_LEAST,em as LABEL_KEEP_AT_MOST,ek as LABEL_KEEP_PERCENTAGE,d_ as LABEL_KEEP_TRACES_DURATION,dY as LABEL_KEEP_TRACES_ERRORS,ea as LABEL_METHOD,es as LABEL_NOTE,dW as LABEL_NO_PREVIEW,ed as LABEL_OPERATION_TYPE,fN as LABEL_RULE_DISABLED,fO as LABEL_RULE_ENABLED,eq as LABEL_RULE_NAME,er as LABEL_RULE_TYPE,en as LABEL_SAMPLE,e4 as LABEL_SERVER_ADDRESS,e6 as LABEL_TEMPLATED_PATH,e8 as LABEL_TEMPLATED_PATH_PREFIX,bp as LANGUAGE_OPTIONS,df as MONITORS_OPTIONS,ez as NOTE_ENTIRE_CLUSTER,eE as NOTE_SOURCE_SCOPE_LOGIC,fP as OPENTELEMETRY_EBPF_DISTRO_OPTION,eg as OPERATION_ALL,ef as OPERATION_HTTP_CLIENT,ec as OPERATION_HTTP_SERVER,eh as OPERATION_KAFKA_CONSUMER,ei as OPERATION_KAFKA_PRODUCER,bo as OTEL_DISTRO_NAME_OPTIONS,ej as PERCENTAGE_SECTION_DESCRIPTIONS,eu as PLACEHOLDER_NOTE,e5 as PLACEHOLDER_ROUTE,et as PLACEHOLDER_RULE_NAME,eH as PLACEHOLDER_SEARCH_SOURCE,e3 as PLACEHOLDER_SERVER_ADDRESS,bd as PROCESS_ATTRIBUTE_NAMES,ag as REGEX_TESTER_DRAWER,aF as SAMPLING_AUTO_RULE_TITLE,dL as SAMPLING_BTN_CREATE_RULE,dJ as SAMPLING_BTN_DOCS,dK as SAMPLING_BTN_REFRESH,aD as SAMPLING_COST_REDUCTION_AUTO_RULE_TITLE,bI as SAMPLING_DEFAULT_CONFIRM_DESCRIPTION,bK as SAMPLING_DEFAULT_CONFIRM_PREVIEW_LABEL,bJ as SAMPLING_DEFAULT_CONFIRM_TITLE,dO as SAMPLING_DELETE_MODAL_APPROVE,dP as SAMPLING_DELETE_MODAL_CANCEL,dQ as SAMPLING_DELETE_MODAL_DESCRIPTION,dR as SAMPLING_DELETE_MODAL_TITLE,bS as SAMPLING_DRAWER_WIDTH,dI as SAMPLING_DUPLICATE_RULE_WARNING,aA as SAMPLING_HIGHLY_RELEVANT_AUTO_RULE_TITLE,cJ as SAMPLING_ONBOARDING_ADVANCED_LEFT_BULLET_1,cK as SAMPLING_ONBOARDING_ADVANCED_LEFT_BULLET_2,cL as SAMPLING_ONBOARDING_ADVANCED_LEFT_BULLET_3,cM as SAMPLING_ONBOARDING_ADVANCED_LEFT_TITLE,cN as SAMPLING_ONBOARDING_ADVANCED_RIGHT_BULLET_1,cO as SAMPLING_ONBOARDING_ADVANCED_RIGHT_BULLET_2,cP as SAMPLING_ONBOARDING_ADVANCED_RIGHT_BULLET_3,cQ as SAMPLING_ONBOARDING_ADVANCED_RIGHT_BULLET_4,cR as SAMPLING_ONBOARDING_ADVANCED_RIGHT_BULLET_5,cS as SAMPLING_ONBOARDING_ADVANCED_RIGHT_TITLE,cU as SAMPLING_ONBOARDING_ADVANCED_SUBTITLE,cT as SAMPLING_ONBOARDING_ADVANCED_TITLE,d9 as SAMPLING_ONBOARDING_AMBIENT_LABEL,cf as SAMPLING_ONBOARDING_BTN_GO_TO,c0 as SAMPLING_ONBOARDING_BTN_NEXT,cI as SAMPLING_ONBOARDING_BTN_READ_MORE,cq as SAMPLING_ONBOARDING_BTN_SKIP,cr as SAMPLING_ONBOARDING_BTN_START,cV as SAMPLING_ONBOARDING_COMMON_BANNER,d8 as SAMPLING_ONBOARDING_COMMON_RULES_SECTION,cY as SAMPLING_ONBOARDING_DROP_DESCRIPTION,cX as SAMPLING_ONBOARDING_DROP_SUBTITLE,cW as SAMPLING_ONBOARDING_DROP_TITLE,c$ as SAMPLING_ONBOARDING_ERROR_PRESET_NAME,c_ as SAMPLING_ONBOARDING_ERROR_PRESET_TOGGLE_LABEL,d2 as SAMPLING_ONBOARDING_KEEP_DESCRIPTION,d1 as SAMPLING_ONBOARDING_KEEP_SUBTITLE,d0 as SAMPLING_ONBOARDING_KEEP_TITLE,d3 as SAMPLING_ONBOARDING_KEEP_USE_CASE_1,d4 as SAMPLING_ONBOARDING_KEEP_USE_CASE_2,d5 as SAMPLING_ONBOARDING_KEEP_USE_CASE_3,d6 as SAMPLING_ONBOARDING_KEEP_USE_CASE_4,d7 as SAMPLING_ONBOARDING_KEEP_USE_CASE_5,c7 as SAMPLING_ONBOARDING_NOISY_BANNER,c3 as SAMPLING_ONBOARDING_NOISY_DESCRIPTION,c6 as SAMPLING_ONBOARDING_NOISY_PRESET_NAME,c4 as SAMPLING_ONBOARDING_NOISY_PRESET_SECTION,c5 as SAMPLING_ONBOARDING_NOISY_PRESET_TOGGLE_LABEL,c2 as SAMPLING_ONBOARDING_NOISY_SUBTITLE,c1 as SAMPLING_ONBOARDING_NOISY_TITLE,cZ as SAMPLING_ONBOARDING_PRESET_RULES_SECTION,b$ as SAMPLING_ONBOARDING_RECOMMENDED_BADGE,cF as SAMPLING_ONBOARDING_STRATEGY_ADVANCED_BADGE,cG as SAMPLING_ONBOARDING_STRATEGY_ADVANCED_DESC,cH as SAMPLING_ONBOARDING_STRATEGY_ADVANCED_NAME,cC as SAMPLING_ONBOARDING_STRATEGY_DROP_BADGE,cA as SAMPLING_ONBOARDING_STRATEGY_DROP_BULLET_1,cB as SAMPLING_ONBOARDING_STRATEGY_DROP_BULLET_2,cD as SAMPLING_ONBOARDING_STRATEGY_DROP_DESC,cE as SAMPLING_ONBOARDING_STRATEGY_DROP_NAME,cx as SAMPLING_ONBOARDING_STRATEGY_KEEP_BADGE,cv as SAMPLING_ONBOARDING_STRATEGY_KEEP_BULLET_1,cw as SAMPLING_ONBOARDING_STRATEGY_KEEP_BULLET_2,cy as SAMPLING_ONBOARDING_STRATEGY_KEEP_DESC,cz as SAMPLING_ONBOARDING_STRATEGY_KEEP_NAME,cu as SAMPLING_ONBOARDING_STRATEGY_KEEP_WARNING,ct as SAMPLING_ONBOARDING_STRATEGY_SUBTITLE,cs as SAMPLING_ONBOARDING_STRATEGY_TITLE,cc as SAMPLING_ONBOARDING_SUCCESS_BULLET_1,cd as SAMPLING_ONBOARDING_SUCCESS_BULLET_2,ce as SAMPLING_ONBOARDING_SUCCESS_BULLET_3,cb as SAMPLING_ONBOARDING_SUCCESS_INTRO,ca as SAMPLING_ONBOARDING_SUCCESS_SUBTITLE,c9 as SAMPLING_ONBOARDING_SUCCESS_TITLE,cp as SAMPLING_ONBOARDING_WELCOME_BANNER,ci as SAMPLING_ONBOARDING_WELCOME_INTRO,cj as SAMPLING_ONBOARDING_WELCOME_STAGE_1_DESC,ck as SAMPLING_ONBOARDING_WELCOME_STAGE_1_TITLE,cl as SAMPLING_ONBOARDING_WELCOME_STAGE_2_DESC,cm as SAMPLING_ONBOARDING_WELCOME_STAGE_2_TITLE,cn as SAMPLING_ONBOARDING_WELCOME_STAGE_3_DESC,co as SAMPLING_ONBOARDING_WELCOME_STAGE_3_TITLE,ch as SAMPLING_ONBOARDING_WELCOME_SUBTITLE,cg as SAMPLING_ONBOARDING_WELCOME_TITLE,dM as SAMPLING_PAGE_DESCRIPTION,dN as SAMPLING_PAGE_TITLE,eJ as SCOPE_AND_LABEL,eI as SCOPE_GROUP_ANY_OF_HINT,eD as SCOPE_GROUP_LANGUAGES_TITLE,eC as SCOPE_GROUP_NAMESPACES_TITLE,eA as SCOPE_GROUP_SOURCES_TITLE,dZ as SECTION_DURATION,dX as SECTION_ERRORS,aC as SECTION_KEEP_PERCENTAGE,e1 as SECTION_OPERATION,ey as SECTION_SAMPLING_PREVIEW,eK as SECTION_SOURCE_SCOPE,de as STORAGE_KEYS,dE as TITLE_NO_RESULTS,dG as TITLE_NO_RULES,fQ as TOKEN_ABOUT_TO_EXPIRE,ev as TOOLTIP_NOTE,eB as UNKNOWN_SOURCE_LABEL,bF as UNNAMED_RULE,dH as getNoResultsSubTitle,aL as getSupportedActionOptions,fR as isActionSupportedOnPlatform,fS as isActionSupportedOnVersion,a3 as mapActionTypesToOptions}from"./chunks/ui-components-BDSEcaSZ.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { type FC } from 'react';
|
|
2
|
-
import { ActionType, type ActionFormData, type CustomFieldProps } from '@/types';
|
|
2
|
+
import { ActionType, type ActionFormData, type ActionYamlProperties, type CustomFieldProps, type SignalType } from '@/types';
|
|
3
3
|
interface CustomFieldsProps extends CustomFieldProps<ActionFormData['fields']> {
|
|
4
4
|
actionType?: ActionType;
|
|
5
|
+
dynamicFields?: ActionYamlProperties[];
|
|
6
|
+
signals?: SignalType[];
|
|
5
7
|
}
|
|
6
8
|
declare const CustomFields: FC<CustomFieldsProps>;
|
|
7
9
|
export { CustomFields, type CustomFieldsProps };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import { type ActionFormData, type ActionYamlProperties, type SignalType } from '@/types';
|
|
3
|
+
export interface DynamicActionFieldsProps {
|
|
4
|
+
signals: SignalType[];
|
|
5
|
+
fields: ActionYamlProperties[];
|
|
6
|
+
value: ActionFormData['fields'];
|
|
7
|
+
setValue: (key: string, value: unknown) => void;
|
|
8
|
+
formErrors: Record<string, string>;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Renders action form fields dynamically from the YAML-defined catalog. Supports
|
|
13
|
+
* flat fields (input, checkbox, multiInput, keyValuePairs, dropdown, …) as well
|
|
14
|
+
* as nested/tabular config via `multiTabledInput` (configurable columns) and
|
|
15
|
+
* `fieldGroup` (repeatable nested groups). This is the preferred renderer
|
|
16
|
+
* whenever the backend catalog supplies fields; the bespoke `custom-fields/`
|
|
17
|
+
* forms are only used as a fallback for older backends that don't expose the
|
|
18
|
+
* actionTypes catalog.
|
|
19
|
+
*/
|
|
20
|
+
export declare const DynamicActionFields: FC<DynamicActionFieldsProps>;
|
|
@@ -15,10 +15,11 @@ export declare const SAMPLING_CATEGORY_NOTES: Record<SamplingCategory, string>;
|
|
|
15
15
|
export declare const SAMPLING_CATEGORY_LIST_TITLES: Record<SamplingCategory, string>;
|
|
16
16
|
export declare const CATEGORY_TO_RULE_CATEGORY: Record<SamplingCategory, SamplingRuleCategory>;
|
|
17
17
|
export declare const RULE_CATEGORY_TO_CATEGORY: Record<SamplingRuleCategory, SamplingCategory>;
|
|
18
|
-
export
|
|
19
|
-
export declare function
|
|
20
|
-
export declare function
|
|
21
|
-
export declare function
|
|
18
|
+
export type SummaryContext = 'global' | 'source';
|
|
19
|
+
export declare function buildScopeParts(scopes: SourcesScopes | null | undefined, context?: SummaryContext): ColoredSpanPart[];
|
|
20
|
+
export declare function buildNoisySummary(rule: NoisyOperationRule, context?: SummaryContext): ColoredSpanPart[];
|
|
21
|
+
export declare function buildHighlyRelevantSummary(rule: HighlyRelevantOperationRule, context?: SummaryContext): ColoredSpanPart[];
|
|
22
|
+
export declare function buildCostReductionSummary(rule: CostReductionRule, context?: SummaryContext): ColoredSpanPart[];
|
|
22
23
|
export declare function getHighlyRelevantTypeBadge(rule: HighlyRelevantOperationRule): HighlyRelevantBadgeType;
|
|
23
24
|
export declare function buildSamplingRuleItems(groups: SamplingRules[], category: SamplingCategory, excludeRuleIds?: Set<string>): SamplingRuleItem[];
|
|
24
25
|
export declare function buildSummaryForRule(category: SamplingRuleCategory, rule: NoisyOperationRule | HighlyRelevantOperationRule | CostReductionRule): ColoredSpanPart[];
|