Socket
Socket
Sign inDemoInstall

@styra/opa-react

Package Overview
Dependencies
Maintainers
0
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@styra/opa-react

Styra-supported React hooks and components for frontend authorization based on @styra/opa


Version published
Maintainers
0
Created
Source

@styra/opa-react

License NPM Version

This package contains helpers for using @styra/opa from React.

Features

  • High-level, declarative components for embedding authorization decisions in your frontend code.
  • Built-in caching, deduplication, and state management based on @tanstack/react-query.
  • Optional request batching for backends that support it (Enterprise OPA, or your own implementation of the Batch API).

Details

The package provides an useAuthz hook and a high-level <Authz> component.

They are enabled by wrapping your App into <AuthzProvider>:

<AuthzProvider opaClient={opaClient} defaultPath="policy" defaultInput={{ user, tenant }}>
  <Nav />
  <Outlet />
</AuthzProvider>

This example provides a previously-configured opaClient instance (OPAClient from @styra/opa), a request path, and default input (which is merged with per-call inputs).

They can either be used by providing static children (<button>Press Here</button>) and optionally fallback and loading JSX elements:

<Authz
  path={path}
  input={input}
  loading={<div>...</div>}
  fallback={<button disabled={true}>Press Here</button>}>
  <button>Press Here</button>
</Authz>

The useAuthz hook can be used if you need more low-level control about the authorization call. Furthermore, you can retrieve the prepared opaClient instance of AuthzProvider for even more control, if need be:

import { AuthzContext } from "@styra/opa-react";

export default function Component() {
  const { opaClient } = useContext(AuthzContext);
  // now you can use `opaClient.evaluate()` etc directly
}

Community

For questions, discussions and announcements related to Styra products, services and open source projects, please join the Styra community on Slack!

Keywords

FAQs

Package last updated on 20 Aug 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc