CINXE.COM
<!doctype html> <html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-1.0.0 plugin-docs plugin-id-default docs-doc-id-tutorials/Introduction/what-is-permit" data-has-hydrated="false"> <head> <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v2.4.3"> <title data-rh="true">What is Permit? | Permit.io Documentation</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.permit.io/1.0.0/tutorials/Introduction/what-is-permit"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="1.0.0"><meta data-rh="true" name="docusaurus_tag" content="docs-default-1.0.0"><meta data-rh="true" name="docsearch:version" content="1.0.0"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-1.0.0"><meta data-rh="true" property="og:title" content="What is Permit? | Permit.io Documentation"><meta data-rh="true" name="description" content="Permit.io is a company that has devoted it's efforts to solving the common problems of"><meta data-rh="true" property="og:description" content="Permit.io is a company that has devoted it's efforts to solving the common problems of"><link data-rh="true" rel="icon" href="/logo/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.permit.io/1.0.0/tutorials/Introduction/what-is-permit"><link data-rh="true" rel="alternate" href="https://docs.permit.io/1.0.0/tutorials/Introduction/what-is-permit" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.permit.io/1.0.0/tutorials/Introduction/what-is-permit" hreflang="x-default"><link data-rh="true" rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"><link data-rh="true" href="https://cdn.jsdelivr.net/npm/remixicon@4.2.0/fonts/remixicon.css" rel="stylesheet"><link data-rh="true" rel="preconnect" href="https://MVBO9ANY91-dsn.algolia.net" crossorigin="anonymous"><link rel="preconnect" href="https://www.google-analytics.com"> <link rel="preconnect" href="https://www.googletagmanager.com"> <script async src="https://www.googletagmanager.com/gtag/js?id=G-S2W3HZX9EZ"></script> <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-S2W3HZX9EZ",{anonymize_ip:!0})</script> <link rel="search" type="application/opensearchdescription+xml" title="Permit.io Documentation" href="/opensearch.xml"> <script>!function(t,h,e,j,s,n){t.hj=t.hj||function(){(t.hj.q=t.hj.q||[]).push(arguments)},t._hjSettings={hjid:3529378,hjsv:6},s=h.getElementsByTagName("head")[0],(n=h.createElement("script")).async=1,n.src="https://static.hotjar.com/c/hotjar-"+t._hjSettings.hjid+".js?sv="+t._hjSettings.hjsv,s.appendChild(n)}(window,document)</script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/remixicon@4.2.0/fonts/remixicon.css"><link rel="stylesheet" href="/assets/css/styles.ecbeac4c.css"> <link rel="preload" href="/assets/js/runtime~main.d6bfdca3.js" as="script"> <link rel="preload" href="/assets/js/main.60cc2cad.js" as="script"> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-S2W3HZX9EZ"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-S2W3HZX9EZ'); </script><script src="https://cdn.lr-in.com/LogRocket.min.js" crossorigin="anonymous"></script> <script>window.LogRocket && window.LogRocket.init('s0szi1/permitio-docs');</script></head> <body class="navigation-with-keyboard"> <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"> <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:#6851ff;color:#FFFFFF" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">If you like Permit, give us a ⭐️ on <a href="https://www.github.com/permitio/opal" target="_blank" rel="noopener noreferrer">GitHub</a> and follow us on <a href="https://www.twitter.com/permit_io" target="_blank" rel="noopener noreferrer">Twitter</a></div><button type="button" aria-label="Close" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"></a><div class="algolia-search searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a aria-current="page" class="navbar__link active" aria-haspopup="true" aria-expanded="false" role="button" href="/1.0.0/">1.0.0</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/">2.0.0</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/1.0.0/tutorials/Introduction/what-is-permit">1.0.0</a></li></ul></div><a href="https://github.com/permitio" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link github-icon nav-icon" alt="twitter logo"></a><a href="https://twitter.com/permit_io" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link twitter-icon nav-icon" alt="github logo"></a><a href="https://io.permit.io/docs-to-slack" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link slack-icon nav-icon" alt="slack logo"></a><div class="navbar__item dashboard"><a target="_blank" href="https://io.permit.io/QoPSfh">Go to dashboard</a></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg class="dark-theme-toggle" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.48522 1.68164C8.26441 2.82232 7.5013 4.44667 7.5013 6.24925C7.5013 9.70101 10.2996 12.4993 13.7513 12.4993C15.5539 12.4993 17.1782 11.7362 18.3189 10.5153C18.0524 14.8773 14.4304 18.3326 10.0013 18.3326C5.39893 18.3326 1.66797 14.6016 1.66797 9.99926C1.66797 5.57021 5.12321 1.94817 9.48522 1.68164Z" fill="#846358"></path></svg><svg class="light-theme-toggle" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_10761_10952)"><path d="M9.9987 15.0007C8.67262 15.0007 7.40085 14.4739 6.46316 13.5362C5.52548 12.5985 4.9987 11.3267 4.9987 10.0007C4.9987 8.67457 5.52548 7.4028 6.46316 6.46512C7.40085 5.52744 8.67262 5.00065 9.9987 5.00065C11.3248 5.00065 12.5966 5.52744 13.5342 6.46512C14.4719 7.4028 14.9987 8.67457 14.9987 10.0007C14.9987 11.3267 14.4719 12.5985 13.5342 13.5362C12.5966 14.4739 11.3248 15.0007 9.9987 15.0007ZM9.9987 13.334C10.8828 13.334 11.7306 12.9828 12.3557 12.3577C12.9808 11.7326 13.332 10.8847 13.332 10.0007C13.332 9.1166 12.9808 8.26875 12.3557 7.64363C11.7306 7.01851 10.8828 6.66732 9.9987 6.66732C9.11464 6.66732 8.2668 7.01851 7.64168 7.64363C7.01655 8.26875 6.66536 9.1166 6.66536 10.0007C6.66536 10.8847 7.01655 11.7326 7.64168 12.3577C8.2668 12.9828 9.11464 13.334 9.9987 13.334V13.334ZM9.16536 0.833984H10.832V3.33398H9.16536V0.833984ZM9.16536 16.6673H10.832V19.1673H9.16536V16.6673ZM2.92786 4.10815L4.1062 2.92982L5.8737 4.69732L4.69536 5.87565L2.92786 4.10898V4.10815ZM14.1237 15.304L15.302 14.1257L17.0695 15.8932L15.8912 17.0715L14.1237 15.304ZM15.8912 2.92898L17.0695 4.10815L15.302 5.87565L14.1237 4.69732L15.8912 2.92982V2.92898ZM4.69536 14.1257L5.8737 15.304L4.1062 17.0715L2.92786 15.8932L4.69536 14.1257V14.1257ZM19.1654 9.16732V10.834H16.6654V9.16732H19.1654ZM3.33203 9.16732V10.834H0.832031V9.16732H3.33203Z" fill="#FFB381"></path></g><defs><clipPath id="clip0_10761_10952"><rect width="20" height="20" fill="white"></rect></clipPath></defs></svg></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><a href="/"></a><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/1.0.0/">WELCOME</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--active">Get Started</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/1.0.0/tutorials/quickstart">Quickstart</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" tabindex="0" href="/1.0.0/tutorials/Introduction/what-is-permit">Introduction</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/1.0.0/tutorials/Introduction/what-is-permit">What is Permit?</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/1.0.0/tutorials/Onboarding/lets-begin">Onboarding</a></div></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link">Features</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/1.0.0/features/projects-and-env">Projects & Environments</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/1.0.0/features/policy-editor">Policy Editor</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/1.0.0/features/user-management">User Management</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/1.0.0/features/Audit Logs/types">Audit Logs</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/1.0.0/features/coming-soon">Coming Soon</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/1.0.0/concepts/authorization_concepts">Concepts</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link">Reference</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/1.0.0/reference/SDKs/Dotnet/quickstart_dotnet">SDKs</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/1.0.0/reference/api_reference">API Reference</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/1.0.0/reference/api_with_cli">Call API with CLI</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/1.0.0/security/Connectivity">Security</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/1.0.0/faq">FAQ</a></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_z5aJ"><div class="theme-doc-version-banner alert alert--warning margin-bottom--md" role="alert"><div>This is documentation for <!-- -->Permit.io Documentation<!-- --> <b>1.0.0</b>, which is no longer actively maintained.</div><div class="margin-top--md">For up-to-date documentation, see the <b><a href="/">latest version</a></b> (<!-- -->2.0.0<!-- -->).</div></div><div class="docItemContainer_c0TR"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Get Started</span><meta itemprop="position" content="1"></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Introduction</span><meta itemprop="position" content="2"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">What is Permit?</span><meta itemprop="position" content="3"></li></ul></nav><span class="theme-doc-version-badge badge badge--secondary">Version: 1.0.0</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>What is Permit?</h1></header><p><strong><a href="https://www.permit.io/" target="_blank" rel="noopener noreferrer">Permit.io</a></strong> is a company that has devoted it's efforts to solving the common problems of Authorization and permissions within companies.</p><p>We offer a Fullstack permission service, where we enable developers to bake-in permissions and access control into their products within minutes, as well as scale and update their policies on the fly. This means they can focus more on their product and business needs.</p><div class="theme-admonition theme-admonition-tip alert alert--success admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>EXAMPLE</div><div class="admonitionContent_S0QG"><p>A backend developer can call the Permit SDK and get a clear answer if <strong>User A</strong> has the permissions to see <strong>Resource B</strong>.</p></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="fullstack-authorization">Fullstack Authorization<a href="#fullstack-authorization" class="hash-link" aria-label="Direct link to Fullstack Authorization" title="Direct link to Fullstack Authorization"></a></h3><p>At Permit.io, we believe that authorization isn't just about how your software enforces access. It is also about the experiences the developer teams and their users have with the software. For the best experiences, we provide a suite of tools:</p><ol><li><p><strong>Infrastructure</strong> - A centralized control panel, SDKs, APIs and microservices you need to add to create a decision and enforcement points.</p></li><li><p><strong>Backoffice</strong> - A set of (no-)code tools that the rest of the team (e.g. product, security, support, sales) can use to offer that extra product support. We empower developers so they can easily empower the rest of their team.</p></li><li><p><strong>Interfaces</strong> - A complete UI solution for your end-users.</p></li></ol><p>When combining all three layers, you get our product - <strong><a href="https://www.permit.io/" target="_blank" rel="noopener noreferrer">Permit.io</a></strong>. Permit delivers an end-to-end solution, covering all access-control needs so that you won't have to build anything.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="opa--opal">OPA & OPAL<a href="#opa--opal" class="hash-link" aria-label="Direct link to OPA & OPAL" title="Direct link to OPA & OPAL"></a></h3><p>A key part of Permit.io's infrastructure is the open-source combo of OPA and OPAL.</p><ul><li><strong><a href="https://www.openpolicyagent.org/" target="_blank" rel="noopener noreferrer">OPA</a></strong> (<strong>Open Policy Agent</strong>) is a generic policy-based decision engine.</li><li><strong><a href="https://www.opal.ac/" target="_blank" rel="noopener noreferrer">OPAL</a></strong> (<strong>Open Policy Administration Layer</strong>) is a real-time solution to keep policy agents updated with the policies and data they need in an event-driven distributed fashion.</li></ul><p>When you use Permit.io's authorization microservices you get OPA and OPAL as the built-in defaults.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="realtime-permissions">Realtime Permissions<a href="#realtime-permissions" class="hash-link" aria-label="Direct link to Realtime Permissions" title="Direct link to Realtime Permissions"></a></h3><p>Let's consider a simple policy - </p><div class="theme-admonition theme-admonition-info alert alert--info admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_S0QG"><p><strong>Only users that have paid for a feature should have access to it</strong></p><p>The information on who has paid would usually be managed by a third party service, such as Stripe or Paypal. We would want those changes in these services to update our authorization layer as soon as possible, so they can change access accordingly.</p><p><strong>OPAL</strong> provides this through its event driven architecture.</p></div></div></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/1.0.0/tutorials/quickstart"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Quickstart</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/1.0.0/tutorials/Onboarding/lets-begin"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Let's begin!</div></a></nav></div></div><div class="col col--3"><div class="toc-wrapper"><h2>Contents</h2><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#fullstack-authorization" class="table-of-contents__link toc-highlight">Fullstack Authorization</a></li><li><a href="#opa--opal" class="table-of-contents__link toc-highlight">OPA & OPAL</a></li><li><a href="#realtime-permissions" class="table-of-contents__link toc-highlight">Realtime Permissions</a></li></ul></div></div></div></div></div></main></div></div></div> <script src="/assets/js/runtime~main.d6bfdca3.js"></script> <script src="/assets/js/main.60cc2cad.js"></script> <script> function getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } var cookie = getCookie('_lr_id'); if (cookie && window.LogRocket){ lr_id = JSON.parse(atob(decodeURIComponent(escape(cookie)))); window.LogRocket.identify(lr_id.email, {name:lr_id.fullName, email:lr_id.email}); } </script></body> </html>