1"use strict";(self.webpackChunkdataedo=self.webpackChunkdataedo||[]).push([["13924"],{48804:function(e,a,t){t.r(a),t.d(a,{frontMatter:()=>l,default:()=>p,toc:()=>u,metadata:()=>r,assets:()=>d,contentTitle:()=>i});var r=JSON.parse('{"id":"get-started/repository/migrate-repository-to-postgresql/migrate-repository-to-postgresql","title":"Migrate SQL Server repository to PostgreSQL","description":"Learn how to copy an existing Dataedo repository from SQL Server to PostgreSQL with the dataedo copy-to-postgres command.","source":"@site/docs/get-started/repository/migrate-repository-to-postgresql/migrate-repository-to-postgresql.mdx","sourceDirName":"get-started/repository/migrate-repository-to-postgresql","slug":"/get-started/repository/migrate-repository-to-postgresql/","permalink":"/get-started/repository/migrate-repository-to-postgresql/","draft":false,"unlisted":false,"tags":[{"inline":true,"label":"Getting started","permalink":"/tags/getting-started"},{"inline":true,"label":"Dataedo Repository","permalink":"/tags/dataedo-repository"},{"inline":true,"label":"Migration","permalink":"/tags/migration"},{"inline":true,"label":"PostgreSQL","permalink":"/tags/postgre-sql"}],"version":"current","lastUpdatedAt":1788159190000,"sidebarPosition":2,"frontMatter":{"title":"Migrate SQL Server repository to PostgreSQL","description":"Learn how to copy an existing Dataedo repository from SQL Server to PostgreSQL with the dataedo copy-to-postgres command.","sidebar_position":2,"tags":["Getting started","Dataedo Repository","Migration","PostgreSQL"]},"sidebar":"tutorialSidebar","previous":{"title":"Dataedo Repository Database Schema","permalink":"/docs/repository/repository/repository-database-schema"},"next":{"title":"Extend Repository","permalink":"/get-started/repository/extend-repository/"}}'),s=t(85893),o=t(50065);t(88046);var n=t(72629);let l={title:"Migrate SQL Server repository to PostgreSQL",description:"Learn how to copy an existing Dataedo repository from SQL Server to PostgreSQL with the dataedo copy-to-postgres command.",sidebar_position:2,tags:["Getting started","Dataedo Repository","Migration","PostgreSQL"]},i=void 0,d={},u=[{value:"Before you start",id:"before-you-start",level:2},{value:"Copy to PostgreSQL using Dataedo CLI",id:"copy-to-postgresql-using-dataedo-cli",level:2},{value:"<code>copy-to-postgres</code> options",id:"copy-to-postgres-options",level:3},{value:"Migration \u2014 basic configuration",id:"migration--basic-configuration",level:2},{value:"After the copy",id:"after-the-copy",level:2}];function c(e){let a={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.admonition,{type:"warningtoast",children:(0,s.jsx)(a.p,{children:"PostgreSQL repositories will not work with Dataedo Desktop, move the repository only if you plan to use only Dataedo Portal"})}),"\n",(0,s.jsxs)(a.p,{children:["If your Dataedo repository currently runs on SQL Server and you want to move it to PostgreSQL, you do not have to set everything up from scratch and re-import your data sources. Dataedo CLI comes with a ",(0,s.jsx)(a.code,{children:"copy-to-postgres"})," command that copies all data from your SQL Server repository into a PostgreSQL repository."]}),"\n",(0,s.jsx)(a.h2,{id:"before-you-start",children:"Before you start"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsxs)(a.li,{children:["you need an existing SQL Server repository. If you have not set up a repository yet and want it to be on PostgreSQL, read ",(0,s.jsx)(a.a,{href:"/docs/installation/installation/web-new-repository-creation",children:"this article instead"})]}),"\n",(0,s.jsxs)(a.li,{children:["you need a PostgreSQL repository already created (with ",(0,s.jsx)(a.code,{children:"dataedo create"}),") on the same Dataedo version as the source repository"]}),"\n",(0,s.jsx)(a.li,{children:"stop the Web Portal and Agent before running the command"}),"\n",(0,s.jsxs)(a.li,{children:["the migration is a safe, non-destructive process. However, your SQL Server repository will be set to ",(0,s.jsx)(a.strong,{children:"read only"})," mode during creation, so you can't use it or add new information to it during the export"]}),"\n"]}),"\n",(0,s.jsx)(a.h2,{id:"copy-to-postgresql-using-dataedo-cli",children:"Copy to PostgreSQL using Dataedo CLI"}),"\n",(0,s.jsxs)(a.p,{children:["The copy runs through Dataedo CLI, which ships with the Dataedo Editor and Agent installer
1s. If you are not sure whether it is on your machine, run ",(0,s.jsx)(a.code,{children:"dataedo --help"})," in a terminal \u2014 if it is installed, you will get a list of available commands, ",(0,s.jsx)(a.code,{children:"copy-to-postgres"})," among them. You can also run ",(0,s.jsx)(a.code,{children:"dataedo copy-to-postgres --help"})," at any point to see the options below without leaving the terminal."]}),"\n",(0,s.jsxs)(a.h3,{id:"copy-to-postgres-options",children:[(0,s.jsx)(a.code,{children:"copy-to-postgres"})," options"]}),"\n",(0,s.jsxs)(a.p,{children:["Running ",(0,s.jsx)(a.code,{children:"dataedo copy-to-postgres --help"})," lists the options the command accepts:"]}),"\n",(0,s.jsx)(n.G,{children:(0,s.jsxs)(a.table,{children:[(0,s.jsx)(a.thead,{children:(0,s.jsxs)(a.tr,{children:[(0,s.jsx)(a.th,{children:"Option"}),(0,s.jsx)(a.th,{children:"Description"})]})}),(0,s.jsxs)(a.tbody,{children:[(0,s.jsxs)(a.tr,{children:[(0,s.jsx)(a.td,{children:(0,s.jsx)(a.code,{children:"--help"})}),(0,s.jsx)(a.td,{children:"Show help information."})]}),(0,s.jsxs)(a.tr,{children:[(0,s.jsxs)(a.td,{children:[(0,s.jsx)(a.code,{children:"-tsn"}),", ",(0,s.jsx)(a.code,{children:"--targetServerName"})]}),(0,s.jsx)(a.td,{children:"Target PostgreSQL server name"})]}),(0,s.jsxs)(a.tr,{children:[(0,s.jsxs)(a.td,{children:[(0,s.jsx)(a.code,{children:"-tp"}),", ",(0,s.jsx)(a.code,{children:"--targetPort"})]}),(0,s.jsx)(a.td,{children:"Target PostgreSQL port (default: 5432)"})]}),(0,s.jsxs)(a.tr,{children:[(0,s.jsxs)(a.td,{children:[(0,s.jsx)(a.code,{children:"-tl"}),", ",(0,s.jsx)(a.code,{children:"--targetLogin"})]}),(0,s.jsx)(a.td,{children:"Target PostgreSQL login"})]}),(0,s.jsxs)(a.tr,{children:[(0,s.jsxs)(a.td,{children:[(0,s.jsx)(a.code,{children:"-tpass"}),", ",(0,s.jsx)(a.code,{children:"--targetPassword"})]}),(0,s.jsx)(a.td,{children:"Target PostgreSQL password"})]}),(0,s.jsxs)(a.tr,{children:[(0,s.jsxs)(a.td,{children:[(0,s.jsx)(a.code,{children:"-tdn"}),", ",(0,s.jsx)(a.code,{children:"--targetDatabaseName"})]}),(0,s.jsx)(a.td,{children:"Target PostgreSQL database name"})]}),(0,s.jsxs)(a.tr,{children:[(0,s.jsxs)(a.td,{children:[(0,s.jsx)(a.code,{children:"-uc"}),", ",(0,s.jsx)(a.code,{children:"--updateConfig"})]}),(0,s.jsx)(a.td,{children:"After a successful copy, point the Web Portal configuration at the PostgreSQL repository. Default: False."})]})]})]})}),"\n",(0,s.jsx)(a.h2,{id:"migration--basic-configuration",children:"Migration \u2014 basic configuration"}),"\n",(0,s.jsx)(a.p,{children:"For a basic run, you do not need to pass any of the options above \u2014 just call the command and answer the prompts. This is the quickest way to run the migration and works for most cases."}),"\n",(0,s.jsxs)(a.ol,{children:["\n",(0,s.jsxs)(a.li,{children:["\n",(0,s.jsx)(a.p,{children:"Stop the Web Portal and Agent."}),"\n"]}),"\n",(0,s.jsxs)(a.li,{children:["\n",(0,s.jsx)(a.p,{children:"Open a terminal on the machine where Dataedo CLI is installed and run:"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{children:"dataedo copy-to-postgres\n"})}),"\n",(0,s.jsxs)(a.ol,{start:"3",children:["\n",(0,s.jsx)(a.li,{children:"You will be prompted for the target repository's connection details, one at a time:"}),"\n"]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{children:"Target server name: \nTarget login: \nTarget password: \nTarget database name: \n"})}),"\n",(0,s.jsxs)(a.ol,{start:"4",children:["\n",(0,s.jsxs)(a.li,{children:["\n",(0,s.jsx)(a.p,{children:"Dataedo will connect to both repositories and start copying data. Existing data in the target repository is cleared first (this includes the data that was seeded when the repository was created), then tables are copied over one by one, with progress printed to the terminal as it goes."}),"\n"]}),"\n",(0,s.jsxs)(a.li,{children:["\n",(0,s.jsx)(a.p,{children:"Once every table is copied, Dataedo resets the PostgreSQL sequences and verifies the row counts between the source and the target. If everything matches, you will see a summary line and a success message:"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(a.pre,{children:(0,s.jsx)(a.code,{children:"Resetting sequences...\nVerifying row counts...\nCopied XYZ rows across XYZ tables in XYZ.\nCommand successfully completed: copy-to-postgres\nDone\n"})}),"\n",(0,s.jsx)(a.p,{children:"If the row counts don't match, the command fails with details on which table didn't come across correctly - re-run the copy once the issue is resolved."}),"\n",(0,s.jsx)(a.h2,{id:"after-the-copy",children:"After the copy"}),"\n",(0,s.jsxs)(a.p,{children:["Once the copy finishes, point your Web Portal and Agent configuration at the PostgreSQL repository (or pass ",(0,s.jsx)(a.code,{children:"-uc"})," / ",(0,s.jsx)(a.code,{children:"--updateConfig"})," when you run the command to have this done for you), then start the Web Portal and Agent back up."]})]})}function p(e={}){let{wrapper:a}={...(0,o.a)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},72629:function(e,a,t){t.d(a,{G:()=>p,Z:()=>D});var r=t(85893),s=t(67294);let o="tableRow_LPwX",n="tableCell_wbSM",l="tableCellFeature_XOaV";
1var i=JSON.parse('{"filter":{"mode":"column","field":"type","default":"current","options":[{"label":"Current Plans","value":"current"},{"label":"Legacy Plans","value":"legacy"},{"label":"All Plans","value":null}]},"highlightedRows":["Connectors","Automatic Data Lineage","Manual Data Lineage","Data Quality"],"pinnedLastRow":"Application","columns":[{"name":"Dataedo Essentials","type":"current"},{"name":"Dataedo Data Lineage","type":"current"},{"name":"Dataedo Data Quality","type":"current"},{"name":"Data Catalog","type":"legacy"},{"name":"Enterprise","type":"legacy"},{"name":"Metadata Manager","type":"legacy"},{"name":"Pro Plus","type":"legacy"},{"name":"Pro","type":"legacy"},{"name":"Data Dictionary","type":"legacy"}],"rows":[{"name":"Application","values":{"Dataedo Essentials":"Portal and Desktop","Dataedo Data Lineage":"Portal and Desktop","Dataedo Data Quality":"Portal and Desktop","Data Catalog":"Portal and Desktop","Enterprise":"Portal and Desktop","Metadata Manager":"Desktop only","Pro Plus":"Desktop only","Pro":"Desktop only","Data Dictionary":"Desktop only"}},{"name":"AI Autodocumentation","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Automatic Data Lineage","values":{"Dataedo Essentials":false,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":true,"Enterprise":true,"Metadata Manager":true,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Manual Data Lineage","values":{"Dataedo Essentials":false,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":true,"Enterprise":true,"Metadata Manager":true,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Metadata Sync","values":{"Dataedo Essentials":false,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Data Quality","values":{"Dataedo Essentials":false,"Dataedo Data Lineage":false,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Badges","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Glossary","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":true,"Enterprise":true,"Metadata Manager":true,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Domains","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":true,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Data Products","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Community","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":true,"Enterprise":true,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Data Classification","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":true,"Enterprise":true,"Metadata Manager":true,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Data Profiling","values":{"Dataedo Essentials":false,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":true,"Enterprise":true,"Metadata Manager":true,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Public API","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Reference Data","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":true,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Report Catalog","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":true,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Scheduler","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Schema Change Tracking","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":true,"Enterprise":true,"Metadata Manager":true,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Steward Hub","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Workflows","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Custom Fields","values":{"Dataedo Essentials":"100","Dataedo Data Lineage":"100","Dataedo Data Quality":"100","Data Catalog":"100","Enterprise":"100","Metadata Manager":"10","Pro Plus":"10","Pro":"5","Data Dictionary":"1"}},{"name":"Connectors","values":{"Dataedo Essentials":"All","Dataedo Data Lineage":"All","Dataedo Data Quality":"All","Data Catalog":"All","Enterprise":"All","Metadata Manager":"All","Pro Plus":"All","Pro":"All","Data Dictionary":"All"}},{"name":"ML Models Documentation","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"ER Diagrams","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Browser Extension","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Exports","values":{"Dataedo Essentials":false,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"Dashboards","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}},{"name":"History of changes in documentation","values":{"Dataedo Essentials":true,"Dataedo Data Lineage":true,"Dataedo Data Quality":true,"Data Catalog":false,"Enterprise":false,"Metadata Manager":false,"Pro Plus":false,"Pro":false,"Data Dictionary":false}}]}'),d=JSON.parse('{"filter":{"mode":"row","field":"group","default":"General actions","options":[{"label":"General actions","value":"General actions"},{"label":"Community actions","value":"Community actions"},{"label":"Basic actions","value":"Basic actions"},{"label":"Advanced actions","value":"Advanced actions"}]},"columns":[{"name":"Admin"},{"name":"Approver"},{"name":"Connection Manager"},{"name":"Data Community Member"},{"name":"Data Steward"},{"name":"Explorer"},{"name":"Power Data Steward"},{"name":"Viewer"}],"rows":[{"name":"Access Dataedo Portal","group":"General actions","values":{"Admin":true,"Approver":true,"Connection Manager":true,"Data Community Member":true,"Data Steward":true,"Explorer":true,"Power Data Steward":true,"Vie
1wer":true}},{"name":"Admin","group":"General actions","values":{"Admin":true,"Approver":false,"Connection Manager":false,"Data Community Member":false,"Data Steward":false,"Explorer":false,"Power Data Steward":false,"Viewer":false}},{"name":"Manage Connections","group":"General actions","values":{"Admin":false,"Approver":false,"Connection Manager":true,"Data Community Member":false,"Data Steward":false,"Explorer":false,"Power Data Steward":false,"Viewer":false}},{"name":"Edit Community","group":"Community actions","values":{"Admin":true,"Approver":false,"Connection Manager":false,"Data Community Member":true,"Data Steward":true,"Explorer":false,"Power Data Steward":true,"Viewer":false}},{"name":"View Community","group":"Community actions","values":{"Admin":true,"Approver":false,"Connection Manager":true,"Data Community Member":true,"Data Steward":true,"Explorer":false,"Power Data Steward":true,"Viewer":false}},{"name":"Edit Documentation","group":"Basic actions","values":{"Admin":false,"Approver":true,"Connection Manager":false,"Data Community Member":false,"Data Steward":true,"Explorer":false,"Power Data Steward":true,"Viewer":false}},{"name":"View Documentation","group":"Basic actions","values":{"Admin":true,"Approver":true,"Connection Manager":true,"Data Community Member":true,"Data Steward":true,"Explorer":true,"Power Data Steward":true,"Viewer":true}},{"name":"View History","group":"Basic actions","values":{"Admin":true,"Approver":false,"Connection Manager":true,"Data Community Member":false,"Data Steward":true,"Explorer":false,"Power Data Steward":true,"Viewer":false}},{"name":"View Schema Changes","group":"Basic actions","values":{"Admin":true,"Approver":false,"Connection Manager":true,"Data Community Member":false,"Data Steward":true,"Explorer":false,"Power Data Steward":true,"Viewer":false}},{"name":"Assign Badges","group":"Advanced actions","values":{"Admin":false,"Approver":false,"Connection Manager":false,"Data Community Member":false,"Data Steward":true,"Explorer":false,"Power Data Steward":true,"Viewer":false}},{"name":"Generate Descriptions Powered By AI","group":"Advanced actions","values":{"Admin":false,"Approver":false,"Connection Manager":false,"Data Community Member":false,"Data Steward":true,"Explorer":false,"Power Data Steward":true,"Viewer":false}},{"name":"Manage External Queries","group":"Advanced actions","values":{"Admin":false,"Approver":false,"Connection Manager":false,"Data Community Member":false,"Data Steward":false,"Explorer":false,"Power Data Steward":true,"Viewer":false}},{"name":"View Connection Info","group":"Advanced actions","values":{"Admin":true,"Approver":false,"Connection Manager":true,"Data Community Member":false,"Data Steward":true,"Explorer":false,"Power Data Steward":true,"Viewer":false}},{"name":"View Data Profiling Stats","group":"Advanced actions","values":{"Admin":true,"Approver":false,"Connection Manager":true,"Data Community Member":true,"Data Steward":true,"Explorer":true,"Power Data Steward":true,"Viewer":false}},{"name":"View Quality and Profiling Data","group":"Advanced actions","values":{"Admin":true,"Approver":false,"Connection Manager":true,"Data Community Member":true,"Data Steward":true,"Explorer":true,"Power Data Steward":true,"Viewer":false}},{"name":"View Scripts","group":"Advanced actions","values":{"Admin":true,"Approver":false,"Connection Manager":true,"Data Community Member":true,"Data Steward":true,"Explorer":true,"Power Data Steward":true,"Viewer":false}}]}'),u=t(42032);let c={plans_overview:i,roles_permissions_table:d},p=({children:e,wide:a=!1})=>(0,r.jsx)("div",{className:`markdownTableWrapper_fC_J ${a?"markdownTableWrapperWide_Eudh":""}`,children:(0,u.JR)(e)}),D=({dataKey:e="plans_overview",stickyHeader:a=!1})=>{let t=c[e]||null,i=t?.filter,d=i?.default??i?.options?.[0]?.value??null,[p,D]=(0,s.useState)(d);if(!t)return(0,r.jsxs)("div",{children:["Unknown table: ",e]});let{columns:g,rows:f,highlightedRows:m=[],pinnedLastRow:h}=t,y=g,w=f;if(i&&null!=p&&("column"===i.mode?y=g.filter(e=>e[i.field]===p):"row"===i.mode&&(w=f.filter(e=>e[i.field]===p))),!i||"column"===i.mode){let e=w.map(e=>
1e.name),a=m.filter(a=>e.includes(a)),t=h&&e.includes(h)?[h]:[],r=e.filter(e=>!a.includes(e)&&!t.includes(e)).sort((e,a)=>e.localeCompare(a));w=[...a,...r,...t].map(e=>f.find(a=>a.name===e)).filter(Boolean)}return(0,r.jsxs)(r.Fragment,{children:[i&&(0,r.jsx)("div",{className:"filterButtonsContainer_Nfae",children:i.options.map(e=>(0,r.jsx)("button",{className:`filterButton_h1Qf ${p===e.value?"filterButtonActive_iv0Y":""}`,onClick:()=>D(e.value),children:e.label},e.label))}),(0,r.jsx)("div",{className:`tableWrapper_tenR ${a?"tableWrapperSticky_cMGj":""}`,children:(0,r.jsxs)("div",{className:`tableInner_UBZr ${y.length<=3?"tableInnerFixed_Be5Z":""}`,children:[(0,r.jsxs)("div",{className:`${o} ${a?"tableRowSticky_GJw4":""}`,children:[(0,r.jsx)("div",{className:`${n} ${l}`}),y.map(e=>(0,r.jsx)("div",{className:`${n} tableCellHeader_vLpc`,children:e.name},e.name))]}),w.map(e=>(0,r.jsxs)("div",{className:o,children:[(0,r.jsx)("div",{className:`${n} ${l}`,children:e.name}),y.map(a=>{var t;return(0,r.jsx)("div",{className:n,children:null==(t=e.values?.[a.name])?(0,r.jsx)(u.b0,{}):"string"==typeof t?t:t?(0,r.jsx)(u.nQ,{}):(0,r.jsx)(u.b0,{})},a.name)})]},e.name))]})})]})}},42032:function(e,a,t){t.d(a,{JR:()=>function e(a){return s.Children.map(a,a=>{if("string"==typeof a){let e=a.split(i),t=a.match(i);return t?e.reduce((e,a,s)=>{if(a&&e.push(a),t[s]){let a=l[t[s]];e.push((0,r.jsx)(a,{},s))}return e},[]):a}return s.isValidElement(a)&&a.props.children?s.cloneElement(a,{children:e(a.props.children)}):a})},b0:()=>n,nQ:()=>o});var r=t(85893),s=t(67294);let o=()=>(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,r.jsx)("path",{d:"M3.33325 7.99984L6.66659 11.3332L13.3333 4.6665",stroke:"#447E35",strokeLinecap:"round",strokeLinejoin:"round"})}),n=()=>(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,r.jsx)("path",{d:"M12 4L4 12M4 4L12 12",stroke:"#B93C36",strokeLinecap:"round",strokeLinejoin:"round"})}),l={"\u2705":o,"\u2713":o,"\u2714":o,"\u274C":n},i=RegExp(`[${Object.keys(l).join("")}]`,"g")}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.