Skip to content

Commit

Permalink
docs: Revise language SDK content (open-policy-agent#6811)
Browse files Browse the repository at this point in the history
In the OPA ecosystem, there are a number of language SDKs for different
general purpose languages, mostly integrating with the REST API. This PR
highlights these at the start of the OPA ecosystem page, adds some other
projects for completeness and clarifies the owner where more than one
SDK for a language exists.

Signed-off-by: Charlie Egan <charlie@styra.com>
  • Loading branch information
charlieegan3 authored Jun 11, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent ecc134b commit 612b93a
Showing 30 changed files with 158 additions and 31 deletions.
4 changes: 2 additions & 2 deletions docs/content/integration.md
Original file line number Diff line number Diff line change
@@ -394,7 +394,7 @@ package in the Go documentation.
#### Ecosystem Projects

The Go API is made available to allow other projects to build policy functionality into their
applications.
applications.
{{<
ecosystem_feature_link
key="go-integration"
@@ -410,7 +410,7 @@ applications.

Policies can be evaluated as compiled Wasm binaries. See [OPA Wasm docs](../wasm) for more details.

There are a number of projects already built on OPA Wasm,
There are a number of projects already built on OPA Wasm,
{{<
ecosystem_feature_link
key="wasm-integration"
5 changes: 3 additions & 2 deletions docs/website/content/integrations/asp-dotnet-core.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
---
title: ASP.NET Core
title: .NET Core Middleware (build-security)
labels:
category: application
layer: network
code:
- https://github.com/build-security/OPA-AspDotNetCore-Middleware
inventors:
- build-security
software:
- csharp
---
Use ASP.NET Core to create web apps and services that are fast, secure, cross-platform, and cloud-based.
OPA can be used to implement authorization policies for APIs used in the ASP.NET Core framework.

1 change: 1 addition & 0 deletions docs/website/content/integrations/clojure.md
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@
title: App authorization for Clojure
software:
- clojure
- java
labels:
layer: network
category: application
2 changes: 1 addition & 1 deletion docs/website/content/integrations/gradle-plugin.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Gradle Build Plugin
title: Gradle Build Plugin (Bisnode)
labels:
layer: cicd
category: cicdplugin
4 changes: 2 additions & 2 deletions docs/website/content/integrations/nodejs-express.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: NodeJS express
title: NodeJS Express (build-security)
labels:
category: application
layer: network
@@ -8,7 +8,7 @@ code:
inventors:
- build-security
software:
- nodejsexpress
- javascript
docs_features:
rest-api-integration:
note: |
17 changes: 17 additions & 0 deletions docs/website/content/integrations/opa-csharp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: C# OPA SDK (Styra)
labels:
category: application
layer: network
code:
- https://github.com/StyraInc/opa-csharp
- https://www.nuget.org/packages/Styra.Opa
tutorials:
- https://styrainc.github.io/opa-csharp/
inventors:
- styra
software:
- csharp
---

The Styra-supported driver to connect to Open Policy Agent (OPA) and Enterprise OPA deployments from C# applications.
7 changes: 4 additions & 3 deletions docs/website/content/integrations/opa-dotnet-asp-core.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: ASP.NET Core OPA Authorization
title: .NET Package (me-viper)
labels:
category: application
layer: network
@@ -8,7 +8,8 @@ code:
- https://github.com/me-viper/OpaDotNet.Extensions
- https://www.nuget.org/packages/OpaDotNet.Extensions.AspNetCore/
inventors:
- andriikurochka
- me-viper
software:
- csharp
---
Open Policy Agent (OPA) ASP.NET core authorization infrastructure

3 changes: 1 addition & 2 deletions docs/website/content/integrations/opa-dotnet.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: OPA Wasm .NET core SDK
title: Wasm .NET Package (me-viper)
software:
- csharp
inventors:
@@ -17,4 +17,3 @@ docs_features:
note: 'This project implements Open Policy Agent (OPA) WebAssembly .NET core SDK.'
---
Open Policy Agent (OPA) WebAssembly .NET core SDK

16 changes: 16 additions & 0 deletions docs/website/content/integrations/opa-golang.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: OPA Go SDK
software:
- golang
inventors:
- styra
labels:
category: application
layer: network
tutorials:
- https://www.openpolicyagent.org/docs/latest/integration/#integrating-with-the-go-sdk
code:
- https://pkg.go.dev/github.com/open-policy-agent/opa/sdk
- https://github.com/open-policy-agent/opa/tree/main/sdk
---
OPA's native Go SDK allows application developers to run OPA functionality from within their application.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Authorization for Java
title: Java Client (Bisnode)
labels:
layer: network
category: application
17 changes: 17 additions & 0 deletions docs/website/content/integrations/opa-java.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: Java OPA SDK (Styra)
labels:
layer: network
category: application
software:
- java
code:
- https://github.com/StyraInc/opa-java
- https://central.sonatype.com/artifact/com.styra/opa
tutorials:
- https://styrainc.github.io/opa-java/javadoc/
inventors:
- styra
---

The Styra-supported driver to connect to Open Policy Agent (OPA) and Enterprise OPA deployments from Java applications.
14 changes: 14 additions & 0 deletions docs/website/content/integrations/opa-python.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Python Client (Turall)
labels:
layer: network
category: application
software:
- python
code:
- https://github.com/Turall/OPA-python-client
inventors:
- turall
---

Python client for integrating with the OPA REST API.
17 changes: 17 additions & 0 deletions docs/website/content/integrations/opa-typescript.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: Typescript OPA SDK (Styra)
software:
- javascript
- typescript
inventors:
- styra
labels:
layer: network
category: application
tutorials:
- https://styrainc.github.io/opa-typescript/
code:
- https://github.com/StyraInc/opa-typescript
- https://www.npmjs.com/package/@styra/opa
---
The Styra-supported driver to connect to Open Policy Agent (OPA) and Enterprise OPA deployments from Typescript applications.
3 changes: 1 addition & 2 deletions docs/website/content/integrations/opa-wasm-dotnet.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: OPA Wasm .NET package
title: Wasm .NET Package (christophwille)
software:
- csharp
inventors:
@@ -19,4 +19,3 @@ docs_features:
'
---
Call Rego policies in Wasm from C# .NET Core

3 changes: 1 addition & 2 deletions docs/website/content/integrations/opa-wasm-java.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: OPA Wasm Java Gradle SDK
title: Wasm Java Gradle SDK (sangkeon)
software:
- java
inventors:
@@ -18,4 +18,3 @@ docs_features:
'
---
SDK to illustrate how to use Wasm compiled Rego policies from a Java application

4 changes: 2 additions & 2 deletions docs/website/content/integrations/springsecurity-api.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: Authorization for Java Spring Security
title: Authorization for Spring Security
labels:
layer: network
category: application
software:
- javaspringsecurity
- java
code:
- https://github.com/open-policy-agent/contrib/tree/master/spring_authz
- https://github.com/Bisnode/opa-spring-security
4 changes: 4 additions & 0 deletions docs/website/content/organizations/me-viper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
link: https://github.com/me-viper
title: Andrii Kurochka
---
4 changes: 4 additions & 0 deletions docs/website/content/organizations/turall.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
link: https://github.com/Turall
title: Tural
---
2 changes: 1 addition & 1 deletion docs/website/content/softwares/golang.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---
link: https://golang.org/
title: golang
title: Go
---
4 changes: 0 additions & 4 deletions docs/website/content/softwares/javaspringsecurity.md

This file was deleted.

4 changes: 0 additions & 4 deletions docs/website/content/softwares/nodejsexpress.md

This file was deleted.

4 changes: 4 additions & 0 deletions docs/website/content/softwares/python.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
link: https://www.python.org
title: Python
---
4 changes: 4 additions & 0 deletions docs/website/content/softwares/typescript.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
link: http://typescriptlang.org
title: Typescript
---
44 changes: 41 additions & 3 deletions docs/website/layouts/ecosystem/section.html.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{ define "title" }}
{{ site.Title }} | {{ .Title }}
{{ site.Title }} | {{ .Title }}
{{ end }}

{{ define "content" }}
@@ -33,7 +33,8 @@ <h2>{{ $category.title }}</h2>
{{ range $page := where $.Pages "Section" "ecosystem" }}
{{ if eq $page.Params.category $category.key }}
{{ $feature := path.BaseName $page.RelPermalink }}
{{ $selectedIntegrations := partial "functions/select-integrations-by-docs-feature" (dict "integrations" $integrations "feature" $feature) }}
{{ $selectedIntegrations := partial "functions/select-integrations-by-docs-feature" (dict
"integrations" $integrations "feature" $feature) }}

{{ if (gt (len $selectedIntegrations) 1) }}
<li>
@@ -54,11 +55,48 @@ <h2>{{ $category.title }}</h2>
</div>
{{ end }}

<h2 id="languages">Language Integrations</h2>
<div class="grid-container">
<div class="card">
<div class="card-body">
<div class="card-text">
<div>
<p class="mb-4">Integrate natively with OPA directly from your programming language of choice.</p>
<ul>
<li>
<a href="/softwares/javascript/">Javascript &amp; TypeScript</a>
</li>
<li>
<a href="/softwares/java/">Java</a>
</li>
<li>
<a href="/softwares/csharp/">C#</a>
</li>
<li>
<a href="/softwares/golang/">Go</a>
</li>
<li>
<a href="/softwares/clojure/">Clojure</a>
</li>
<li>
<a href="/softwares/rust/">Rust</a>
</li>
<li>
<a href="/softwares/php/">PHP</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>

{{ partial "ecosystem-cta" }}

<h2>All Integrations</h2>
{{ $selectedIntegrations := partial "functions/sort-integrations" (dict "integrations" $integrations) }}
{{ partial "ecosystem-project-list" (dict "selectedIntegrations" $selectedIntegrations "integrations" $integrations) }}
{{ partial "ecosystem-project-list" (dict "selectedIntegrations" $selectedIntegrations "integrations"
$integrations) }}
<p class="ecosystem-note">Integrations are ordered by the amount of linked content.</p>

</div>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 612b93a

Please sign in to comment.