1[ 2 { 3 "title": "Intro to Consul", 4 "routes": [ 5 { 6 "title": "Overview", 7 "path": "intro" 8 }, 9 { 10 "title": "Consul vs. Other Software", 11 "routes": [ 12 { 13 "title": "Overview", 14 "path": "intro/vs" 15 }, 16 { 17 "title": "Chef, Puppet, etc.", 18 "path": "intro/vs/chef-puppet" 19 }, 20 { 21 "title": "Nagios", 22 "path": "intro/vs/nagios" 23 }, 24 { 25 "title": "SkyDNS", 26 "path": "intro/vs/skydns" 27 }, 28 { 29 "title": "SmartStack", 30 "path": "intro/vs/smartstack" 31 }, 32 { 33 "title": "Serf", 34 "path": "intro/vs/serf" 35 }, 36 { 37 "title": "Eureka", 38 "path": "intro/vs/eureka" 39 }, 40 { 41 "title": "Istio", 42 "path": "intro/vs/istio" 43 }, 44 { 45 "title": "Envoy and Other Proxies", 46 "path": "intro/vs/proxies" 47 }, 48 { 49 "title": "Custom Solutions", 50 "path": "intro/vs/custom" 51 } 52 ] 53 } 54 ] 55 }, 56 { 57 "title": "Get Started", 58 "routes": [ 59 { 60 "title": "Overview", 61 "path": "install" 62 }, 63 { 64 "title": "Manual Bootstrap", 65 "path": "install/manual-bootstrap", 66 "hidden": true 67 }, 68 { 69 "title": "Consul Agent", 70 "href": "/docs/agent" 71 }, 72 { 73 "title": "Glossary", 74 "path": "install/glossary" 75 }, 76 { 77 "title": "Required Ports", 78 "path": "install/ports" 79 }, 80 { 81 "title": "Bootstrapping a Datacenter", 82 "path": "install/bootstrapping" 83 }, 84 { 85 "title": "Cloud Auto-join", 86 "path": "install/cloud-auto-join" 87 }, 88 { 89 "title": "Server Performance", 90 "path": "install/performance" 91 }, 92 { 93 "title": "Kubernetes", 94 "href": "/docs/k8s" 95 } 96 ] 97 }, 98 { 99 "title": "API", 100 "href": "/api-docs" 101 }, 102 { 103 "title": "Commands (CLI)", 104 "href": "/commands" 105 }, 106 { 107 "title": "Service Discovery", 108 "routes": [ 109 { 110 "title": "Register Services - Service Definitions", 111 "path": "discovery/services" 112 }, 113 { 114 "title": "Find Services - DNS Interface", 115 "path": "discovery/dns" 116 }, 117 { 118 "title": "Monitor Services - Check Definitions", 119 "path": "discovery/checks" 120 } 121 ] 122 }, 123 { 124 "title": "Service Mesh", 125 "routes": [ 126 { 127 "title": "Overview", 128 "path": "connect" 129 }, 130 { 131 "title": "How Connect Works", 132 "path": "connect/connect-internals" 133 }, 134 { 135 "title": "Configuration", 136 "path": "connect/configuration" 137 }, 138 { 139 "title": "Configuration Entries", 140 "routes": [ 141 { 142 "title": "Overview", 143 "path": "connect/config-entries" 144 }, 145 { 146 "title": "Ingress Gateway", 147 "path": "connect/config-entries/ingress-gateway" 148 }, 149 { 150 "title": "Mesh", 151 "path": "connect/config-entries/mesh" 152 }, 153 { 154 "title": "Proxy Defaults", 155 "path": "connect/config-entries/proxy-defaults" 156 }, 157 { 158 "title": "Service Defaults", 159 "path": "connect/config-entries/service-defaults" 160 }, 161 { 162 "title": "Service Intentions", 163 "path": "connect/config-entries/service-intentions" 164 }, 165 { 166 "title": "Service Resolver", 167 "path": "connect/config-entries/service-resolver" 168 }, 169 { 170 "title": "Service Router", 171 "path": "connect/config-entries/service-router" 172 }, 173 { 174 "title": "Service Splitter", 175 "path": "connect/config-entries/service-splitter" 176 }, 177 { 178 "title": "Terminating Gateway", 179 "path": "connect/config-entries/terminating-gateway" 180 } 181 ] 182 }, 183 { 184 "title": "Supported Proxies", 185 "routes": [ 186 { 187 "title": "Overview", 188 "path": "connect/proxies" 189 }, 190 { 191 "title": "Envoy", 192 "path": "connect/proxies/envoy" 193 }, 194 { 195 "title": "Built-in Proxy", 196 "path": "connect/proxies/built-in" 197 }, 198 { 199 "title": "Proxy Integration", 200 "path": "connect/proxies/integrate" 201 }, 202 { 203 "title": "Managed (Deprecated)", 204 "path": "connect/proxies/managed-deprecated", 205 "hidden": true 206 } 207 ] 208 }, 209 { 210 "title": "Registering Proxies", 211 "routes": [ 212 { 213 "title": "Overview", 214 "path": "connect/registration" 215 }, 216 { 217 "title": "Proxy Service Registration", 218 "path": "connect/registration/service-registration" 219 }, 220 { 221 "title": "Sidecar Service Registration", 222 "path": "connect/registration/sidecar-service" 223 } 224 ] 225 }, 226 { 227 "title": "Service-to-service permissions - Intentions", 228 "path": "connect/intentions" 229 }, 230 { 231 "title": "Service-to-service permissions - Intentions (Legacy Mode)", 232 "path": "connect/intentions-legacy" 233 }, 234 { 235 "title": "Transparent Proxy", 236 "path": "connect/transparent-proxy" 237 }, 238 { 239 "title": "Observability", 240 "routes": [ 241 { 242 "title": "Overview", 243 "path": "connect/observability" 244 }, 245 { 246 "title": "UI Visualization", 247 "path": "connect/observability/ui-visualization" 248 } 249 ] 250 }, 251 { 252 "title": "L7 Traffic Management", 253 "routes": [ 254 { 255 "title": "Overview", 256 "path": "connect/l7-traffic" 257 }, 258 { 259 "title": "Discovery Chain", 260 "path": "connect/l7-traffic/discovery-chain" 261 } 262 ] 263 }, 264 { 265 "title": "Connectivity Tasks", 266 "path": "connect/connectivity-tasks" 267 }, 268 { 269 "title": "Gateways", 270 "routes": [ 271 { 272 "title": "Overview", 273 "path": "connect/gateways" 274 }, 275 { 276 "title": "Connect Datacenters - Mesh Gateways", 277 "routes": [ 278 { 279 "title": "Overview", 280 "path": "connect/gateways/mesh-gateway" 281 }, 282 { 283 "title": "WAN Federation", 284 "path": "connect/gateways/mesh-gateway/wan-federation-via-mesh-gateways" 285 } 286 ] 287 }, 288 { 289 "title": "External <> Internal Services - Ingress Gateways", 290 "path": "connect/gateways/ingress-gateway" 291 }, 292 { 293 "title": "Internal <> External Services - Terminating Gateways", 294 "path": "connect/gateways/terminating-gateway" 295 } 296 ] 297 }, 298 { 299 "title": "Nomad", 300 "path": "connect/nomad" 301 }, 302 { 303 "title": "Kubernetes", 304 "href": "/docs/k8s/connect" 305 }, 306 { 307 "title": "Native App Integration", 308 "routes": [ 309 { 310 "title": "Overview", 311 "path": "connect/native" 312 }, 313 { 314 "title": "Go Integration", 315 "path": "connect/native/go" 316 } 317 ] 318 }, 319 { 320 "title": "Certificate Management", 321 "routes": [ 322 { 323 "title": "Overview", 324 "path": "connect/ca" 325 }, 326 { 327 "title": "Built-In CA", 328 "path": "connect/ca/consul" 329 }, 330 { 331 "title": "Vault", 332 "path": "connect/ca/vault" 333 }, 334 { 335 "title": "ACM Private CA", 336 "path": "connect/ca/aws" 337 } 338 ] 339 }, 340 { 341 "title": "Develop and Debug", 342 "path": "connect/dev" 343 }, 344 { 345 "title": "Security", 346 "path": "connect/security", 347 "hidden": true 348 } 349 ] 350 }, 351 { 352 "title": "Kubernetes", 353 "routes": [ 354 { 355 "title": "Overview", 356 "path": "k8s" 357 }, 358 { 359 "title": "Get Started", 360 "routes": [ 361 { 362 "title": "Install with Helm Chart", 363 "path": "k8s/installation/install" 364 }, 365 { 366 "title": "Platform Guides", 367 "routes": [ 368 { 369 "title": "Minikube", 370 "href": "https://learn.hashicorp.com/tutorials/consul/kubernetes-minikube?utm_source=consul.io&utm_medium=docs&utm_content=k8s&utm_term=mk" 371 }, 372 { 373 "title": "Kind", 374 "href": "https://learn.hashicorp.com/tutorials/consul/kubernetes-kind?utm_source=consul.io&utm_medium=docs&utm_content=k8s&utm_term=kind" 375 }, 376 { 377 "title": "AKS (Azure)", 378 "href": "https://learn.hashicorp.com/tutorials/consul/kubernetes-aks-azure?utm_source=consul.io&utm_medium=docs&utm_content=k8s&utm_term=aks" 379 }, 380 { 381 "title": "EKS (AWS)", 382 "href": "https://learn.hashicorp.com/tutorials/consul/kubernetes-eks-aws?utm_source=consul.io&utm_medium=docs&utm_content=k8s&utm_term=eks" 383 }, 384 { 385 "title": "GKE (Google Cloud)", 386 "href": "https://learn.hashicorp.com/tutorials/consul/kubernetes-gke-google?utm_source=consul.io&utm_medium=docs&utm_content=k8s&utm_term=gke" 387 }, 388 { 389 "title": "Red Hat OpenShift", 390 "href": "https://learn.hashicorp.com/tutorials/consul/kubernetes-openshift-red-hat?utm_source=consul.io&utm_medium=docs&utm_content=k8s&utm_term=openshift" 391 }, 392 { 393 "title": "Self Hosted Kubernetes", 394 "path": "k8s/installation/platforms/self-hosted-kubernetes" 395 } 396 ] 397 }, 398 { 399 "title": "Deployment Configurations", 400 "routes": [ 401 { 402 "title": "Consul Clients Outside Kubernetes", 403 "path": "k8s/installation/deployment-configurations/clients-outside-kubernetes" 404 }, 405 { 406 "title": "Consul Servers Outside Kubernetes", 407 "path": "k8s/installation/deployment-configurations/servers-outside-kubernetes" 408 }, 409 { 410 "title": "Single Consul Datacenter in Multiple Kubernetes Clusters", 411 "path": "k8s/installation/deployment-configurations/single-dc-multi-k8s" 412 }, 413 { 414 "title": "Consul Enterprise", 415 "path": "k8s/installation/deployment-configurations/consul-enterprise" 416 } 417 ] 418 }, 419 { 420 "title": "Multi-Cluster Federation", 421 "routes": [ 422 { 423 "title": "Overview", 424 "path": "k8s/installation/multi-cluster" 425 }, 426 { 427 "title": "Federation Between Kubernetes Clusters", 428 "path": "k8s/installation/multi-cluster/kubernetes" 429 }, 430 { 431 "title": "Federation Between VMs and Kubernetes", 432 "path": "k8s/installation/multi-cluster/vms-and-kubernetes" 433 } 434 ] 435 } 436 ] 437 }, 438 { 439 "title": "Service Mesh", 440 "routes": [ 441 { 442 "title": "Overview", 443 "path": "k8s/connect" 444 }, 445 { 446 "title": "Transparent Proxy", 447 "href": "/docs/connect/transparent-proxy" 448 }, 449 { 450 "title": "Ingress Gateways", 451 "path": "k8s/connect/ingress-gateways" 452 }, 453 { 454 "title": "Terminating Gateways", 455 "path": "k8s/connect/terminating-gateways" 456 }, 457 { 458 "title": "Ingress Controllers", 459 "path": "k8s/connect/ingress-controllers" 460 }, 461 { 462 "title": "Configuring a Connect CA Provider", 463 "path": "k8s/connect/connect-ca-provider" 464 }, 465 { 466 "title": "Ambassador Integration", 467 "path": "k8s/connect/ambassador" 468 }, 469 { 470 "title": "Health Checks", 471 "path": "k8s/connect/health" 472 }, 473 { 474 "title": "Observability", 475 "routes": [ 476 { 477 "title": "Metrics", 478 "path": "k8s/connect/observability/metrics" 479 } 480 ] 481 } 482 ] 483 }, 484 { 485 "title": "Service Sync", 486 "path": "k8s/service-sync" 487 }, 488 { 489 "title": "Custom Resource Definitions", 490 "routes": [ 491 { 492 "title": "Overview", 493 "path": "k8s/crds" 494 }, 495 { 496 "title": "Upgrade An Existing Cluster to CRDs", 497 "path": "k8s/crds/upgrade-to-crds" 498 } 499 ] 500 }, 501 { 502 "title": "Consul DNS", 503 "path": "k8s/dns" 504 }, 505 { 506 "title": "Upgrade", 507 "routes": [ 508 { 509 "title": "Overview", 510 "path": "k8s/upgrade" 511 }, 512 { 513 "title": "Compatibility Matrix", 514 "path": "k8s/upgrade/compatibility" 515 } 516 ] 517 }, 518 { 519 "title": "Operations", 520 "routes": [ 521 { 522 "title": "Uninstall", 523 "path": "k8s/operations/uninstall" 524 }, 525 { 526 "title": "Certificate Rotation", 527 "path": "k8s/operations/certificate-rotation" 528 }, 529 { 530 "title": "Gossip Encryption Key Rotation", 531 "path": "k8s/operations/gossip-encryption-key-rotation" 532 }, 533 { 534 "title": "Configure TLS on an Existing Cluster", 535 "path": "k8s/operations/tls-on-existing-cluster" 536 } 537 ] 538 }, 539 { 540 "title": "Troubleshoot", 541 "routes": [ 542 { 543 "title": "Common Error Messages", 544 "href": "/docs/troubleshoot/common-errors#common-errors-on-kubernetes" 545 }, 546 { 547 "title": "FAQ", 548 "href": "/docs/troubleshoot/faq#consul-on-kubernetes" 549 } 550 ] 551 }, 552 { 553 "title": "Helm Chart Configuration", 554 "path": "k8s/helm" 555 } 556 ] 557 }, 558 { 559 "title": "AWS ECS <sup>Tech Preview</sup>", 560 "routes": [ 561 { 562 "title": "Overview", 563 "path": "ecs" 564 }, 565 { 566 "title": "Get Started", 567 "routes": [ 568 { 569 "title": "Example Installation", 570 "href": "https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/examples/dev-server-fargate" 571 }, 572 { 573 "title": "Requirements", 574 "path": "ecs/get-started/requirements" 575 }, 576 { 577 "title": "Install", 578 "path": "ecs/get-started/install" 579 } 580 ] 581 }, 582 { 583 "title": "Architecture", 584 "path": "ecs/architecture" 585 } 586 ] 587 }, 588 { 589 "title": "Network Infrastructure Automation", 590 "routes": [ 591 { 592 "title": "Overview", 593 "path": "nia" 594 }, 595 { 596 "title": "Get Started", 597 "routes": [ 598 { 599 "title": "Installation", 600 "path": "nia/installation/install" 601 }, 602 { 603 "title": "Requirements", 604 "path": "nia/installation/requirements" 605 }, 606 { 607 "title": "Configure", 608 "path": "nia/installation/configure" 609 }, 610 { 611 "title": "Run Consul-Terraform-Sync", 612 "path": "nia/installation/run" 613 } 614 ] 615 }, 616 { 617 "title": "Architecture", 618 "path": "nia/architecture" 619 }, 620 { 621 "title": "API", 622 "routes": [ 623 { 624 "title": "Overview", 625 "path": "nia/api" 626 }, 627 { 628 "title": "Status", 629 "path": "nia/api/status" 630 }, 631 { 632 "title": "Tasks", 633 "path": "nia/api/tasks" 634 } 635 ] 636 }, 637 { 638 "title": "CLI", 639 "routes": [ 640 { 641 "title": "Overview", 642 "path": "nia/cli" 643 }, 644 { 645 "title": "task", 646 "path": "nia/cli/task" 647 } 648 ] 649 }, 650 { 651 "title": "Configuration", 652 "path": "nia/configuration" 653 }, 654 { 655 "title": "Tasks", 656 "path": "nia/tasks" 657 }, 658 { 659 "title": "Terraform Modules", 660 "path": "nia/terraform-modules" 661 }, 662 { 663 "title": "Enterprise", 664 "routes": [ 665 { 666 "title": "Overview", 667 "path": "nia/enterprise" 668 }, 669 670 { 671 "title": "License", 672 "path": "nia/enterprise/license" 673 }, 674 { 675 "title": "Terraform Cloud Driver", 676 "href": "/docs/nia/network-drivers/terraform-cloud" 677 } 678 ] 679 }, 680 { 681 "title": "Network Drivers", 682 "routes": [ 683 { 684 "title": "Overview", 685 "path": "nia/network-drivers" 686 }, 687 { 688 "title": "Terraform", 689 "path": "nia/network-drivers/terraform" 690 }, 691 { 692 "title": "Terraform Cloud", 693 "path": "nia/network-drivers/terraform-cloud" 694 } 695 ] 696 }, 697 { 698 "title": "Compatibility", 699 "path": "nia/compatibility" 700 } 701 ] 702 }, 703 { 704 "title": "Dynamic App Configuration", 705 "routes": [ 706 { 707 "title": "Consul KV", 708 "path": "dynamic-app-config/kv" 709 }, 710 { 711 "title": "Sessions", 712 "path": "dynamic-app-config/sessions" 713 }, 714 { 715 "title": "Watches", 716 "path": "dynamic-app-config/watches" 717 } 718 ] 719 }, 720 { 721 "title": "Agent", 722 "routes": [ 723 { 724 "title": "Overview", 725 "path": "agent" 726 }, 727 { 728 "title": "Configuration", 729 "path": "agent/options" 730 }, 731 { 732 "title": "Configuration Entries", 733 "path": "agent/config-entries" 734 }, 735 { 736 "title": "Telemetry", 737 "path": "agent/telemetry" 738 }, 739 { 740 "title": "Sentinel", 741 "path": "agent/sentinel" 742 }, 743 { 744 "title": "RPC", 745 "path": "agent/rpc", 746 "hidden": true 747 } 748 ] 749 }, 750 { 751 "title": "Security", 752 "routes": [ 753 { 754 "title": "Overview", 755 "path": "security" 756 }, 757 { 758 "title": "Access Control (ACLs)", 759 "routes": [ 760 { 761 "title": "Overview", 762 "path": "security/acl" 763 }, 764 { 765 "title": "ACL System", 766 "path": "security/acl/acl-system" 767 }, 768 { 769 "title": "ACL Rules", 770 "path": "security/acl/acl-rules" 771 }, 772 { 773 "title": "Legacy Mode", 774 "path": "security/acl/acl-legacy" 775 }, 776 { 777 "title": "Token Migration", 778 "path": "security/acl/acl-migrate-tokens" 779 }, 780 { 781 "title": "Auth Methods", 782 "routes": [ 783 { 784 "title": "Overview", 785 "path": "security/acl/auth-methods" 786 }, 787 { 788 "title": "Kubernetes", 789 "path": "security/acl/auth-methods/kubernetes" 790 }, 791 { 792 "title": "JWT", 793 "path": "security/acl/auth-methods/jwt" 794 }, 795 { 796 "title": "OIDC", 797 "path": "security/acl/auth-methods/oidc" 798 } 799 ] 800 } 801 ] 802 }, 803 { 804 "title": "Encryption", 805 "path": "security/encryption" 806 }, 807 { 808 "title": "Security Models", 809 "routes": [ 810 { 811 "title": "Overview", 812 "path": "security/security-models" 813 }, 814 { 815 "title": "Core", 816 "path": "security/security-models/core" 817 }, 818 { 819 "title": "Network Infrastructure Automation", 820 "path": "security/security-models/nia" 821 } 822 ] 823 } 824 ] 825 }, 826 { 827 "title": "Consul Enterprise", 828 "routes": [ 829 { 830 "title": "Overview", 831 "path": "enterprise" 832 }, 833 { 834 "title": "Audit Logging", 835 "path": "enterprise/audit-logging" 836 }, 837 { 838 "title": "Automated Backups", 839 "path": "enterprise/backups" 840 }, 841 { 842 "title": "Automated Upgrades", 843 "path": "enterprise/upgrades" 844 }, 845 { 846 "title": "Enhanced Read Scalability", 847 "path": "enterprise/read-scale" 848 }, 849 { 850 "title": "Single sign-on - OIDC", 851 "href": "/docs/security/acl/auth-methods/oidc" 852 }, 853 { 854 "title": "Redundancy Zones", 855 "path": "enterprise/redundancy" 856 }, 857 { 858 "title": "Advanced Federation", 859 "path": "enterprise/federation" 860 }, 861 { 862 "title": "Network Segments", 863 "path": "enterprise/network-segments" 864 }, 865 { 866 "title": "Namespaces", 867 "path": "enterprise/namespaces" 868 }, 869 { 870 "title": "NIA with TFE", 871 "href": "/docs/nia/enterprise" 872 }, 873 { 874 "title": "Sentinel", 875 "path": "enterprise/sentinel" 876 }, 877 { 878 "title": "License", 879 "routes": [ 880 { 881 "title": "Overview", 882 "path": "enterprise/license/overview" 883 }, 884 { 885 "title": "FAQ", 886 "path": "enterprise/license/faq" 887 } 888 ] 889 } 890 ] 891 }, 892 { 893 "title": "Architecture", 894 "routes": [ 895 { 896 "title": "Overview", 897 "path": "architecture" 898 }, 899 { 900 "title": "Anti-Entropy", 901 "path": "architecture/anti-entropy" 902 }, 903 { 904 "title": "Consensus Protocol", 905 "path": "architecture/consensus" 906 }, 907 { 908 "title": "Gossip Protocol", 909 "path": "architecture/gossip" 910 }, 911 { 912 "title": "Jepsen Testing", 913 "path": "architecture/jepsen" 914 }, 915 { 916 "title": "Network Coordinates", 917 "path": "architecture/coordinates" 918 } 919 ] 920 }, 921 { 922 "title": "Integrations", 923 "routes": [ 924 { 925 "title": "Consul Integration Program", 926 "path": "integrate/partnerships" 927 }, 928 { 929 "title": "NIA Integration Program", 930 "path": "integrate/nia-integration" 931 }, 932 { 933 "title": "Vault Integration", 934 "href": "/docs/connect/ca/vault" 935 }, 936 { 937 "title": "Ambassador Integration", 938 "href": "/docs/k8s/connect/ambassador" 939 }, 940 { 941 "title": "Proxy Integration", 942 "href": "/docs/connect/proxies/integrate" 943 } 944 ] 945 }, 946 { 947 "title": "Consul Tools", 948 "path": "download-tools" 949 }, 950 { 951 "title": "Upgrade", 952 "routes": [ 953 { 954 "title": "Overview", 955 "path": "upgrading" 956 }, 957 { 958 "title": "Compatibility Promise", 959 "path": "upgrading/compatibility" 960 }, 961 { 962 "title": "Specific Version Details", 963 "path": "upgrading/upgrade-specific" 964 }, 965 { 966 "title": "Upgrade Instructions", 967 "routes": [ 968 { 969 "title": "Overview", 970 "path": "upgrading/instructions" 971 }, 972 { 973 "title": "General Process", 974 "path": "upgrading/instructions/general-process" 975 }, 976 { 977 "title": "Upgrading to 1.2.4", 978 "path": "upgrading/instructions/upgrade-to-1-2-x" 979 }, 980 { 981 "title": "Upgrading to 1.6.9", 982 "path": "upgrading/instructions/upgrade-to-1-6-x" 983 }, 984 { 985 "title": "Upgrading to 1.8.13", 986 "path": "upgrading/instructions/upgrade-to-1-8-x" 987 }, 988 { 989 "title": "Upgrading to 1.10.0", 990 "path": "upgrading/instructions/upgrade-to-1-10-x" 991 } 992 ] 993 } 994 ] 995 }, 996 { 997 "title": "Troubleshoot", 998 "routes": [ 999 { 1000 "title": "Common Error Messages", 1001 "path": "troubleshoot/common-errors" 1002 }, 1003 { 1004 "title": "FAQ", 1005 "path": "troubleshoot/faq" 1006 } 1007 ] 1008 }, 1009 { 1010 "title": "Release Notes", 1011 "routes": [ 1012 { 1013 "title": "1.9.0", 1014 "path": "release-notes/1-9-0" 1015 }, 1016 { 1017 "title": "1.10.0", 1018 "path": "release-notes/1-10-0" 1019 } 1020 ] 1021 }, 1022 { 1023 "title": "Internals", 1024 "hidden": true, 1025 "routes": [ 1026 { 1027 "title": "Overview", 1028 "path": "internals" 1029 }, 1030 { 1031 "title": "ACL", 1032 "path": "internals/acl" 1033 } 1034 ] 1035 }, 1036 { 1037 "title": "Guides", 1038 "path": "guides", 1039 "hidden": true 1040 } 1041] 1042