Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Add example plugin hub #4634

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions tyk-docs/assets/scss/_docs.scss
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@
font-size: 14px;
}

.badge center p {
text-wrap: balance;
font-weight: 500;
line-height: 1.4em;
}

.badge p strong {
font-size: 16px;
font-family: Inter, sans-serif !important;
Expand Down Expand Up @@ -92,6 +98,24 @@
background-color: $brandpurple-dark;
}

.badge .nav.bottom-title {
position: absolute;
left: 50%;
bottom: 0px;
width: 116px;
height: 30px;
top: auto;
border-radius: 18px 18px 0 0;
text-align: center;
color: white;
font-weight: bold;
padding: 4px;
transform: translateX(-50%);
background-color: none !important;
background: none !important;
color: $brand-black !important;
}

.badge .nav.read::before {
content: url("../img/read_white.png");
margin-right: 5px;
Expand Down Expand Up @@ -775,7 +799,7 @@ iframe {
margin-right: 0;
}



.docs-navigation .button {
margin-bottom: 5px;
Expand Down Expand Up @@ -878,4 +902,4 @@ iframe {
display: inline-block;
top: 0;
background-size: 100%;
}
}
235 changes: 235 additions & 0 deletions tyk-docs/content/plugin-hub.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
---
date: 2017-03-23T13:19:38Z
title: Tyk Plugin Hub
weight: 4
hideSidebar: true
hasPadding: true
---

{{< grid >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/blob/master/plugins/go-pre-cert_inject_dn" title="Auth" bottom-title="Golang" >}}

<h4>Certificate DN Injector</h4>
<p>Injects client certificate attributes as a Header</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-postauth-oauth2_introspection" title="Auth" bottom-title="Golang" >}}

<h4>OAuth2 Introspection</h4>
<p>Performs OAuth2 introspection to validate JWT or opaque token</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-postauth-opa_integration" title="Auth" bottom-title="Golang" >}}

<h4>OPA Integration</h4>
<p>Authorizes requests against Open Policy Agent (OPA)</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-auth-multiple_hook_example" title="Example" bottom-title="Golang" >}}

<h4>Multiple Hook Example</h4>
<p>Demonstrates using both Post and Auth hooks in a Go plugin</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-post-inject_metadata" title="Metadata" bottom-title="Golang" >}}

<h4>Metadata Injector</h4>
<p>Injects key metadata into a header</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-auth-basicauth_dynamodb" title="Auth" bottom-title="Golang" >}}

<h4>Basic Auth with DynamoDB</h4>
<p>Checks Basic Auth credentials against AWS DynamoDB</p>

{{< /badge >}}

{{< badge href="https://gist.github.com/zalbiraw/d84ab1aef532ddc2b2ee3c6df81d836b" title="Caching" bottom-title="Golang" >}}

<h4>Custom Cache on Upstream Failure</h4>
<p>Implements custom caching when upstream fails</p>

{{< /badge >}}

{{< badge href="https://gist.github.com/zalbiraw/b1e25dfd2132cc55a05155f4ca291e19" title="Caching" bottom-title="Golang" >}}

<h4>Request Funneling for Cache</h4>
<p>Funnels requests until cache is built</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-header-url-rewrite-conditional" title="Rewrite" bottom-title="Golang" >}}

<h4>Conditional URL Rewrite</h4>
<p>Rewrites upstream URL based on header, query, or body value</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-postauth-upstream-oauth2" title="Auth" bottom-title="Golang" >}}

<h4>Upstream OAuth2</h4>
<p>Performs upstream OAuth2 client credentials flow</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-postauth-invoke-aws-lambda" title="Integration" bottom-title="Golang" >}}

<h4>AWS Lambda Invocation</h4>
<p>Invokes an AWS Lambda function with IAM credentials</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-send-custom-error-conditional" title="Error Handling" bottom-title="Golang" >}}

<h4>Conditional Custom Error</h4>
<p>Sends custom error message from plugin based on conditions</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-connect-to-redis" title="Database" bottom-title="Golang" >}}

<h4>Redis Connection</h4>
<p>Establishes a connection to a Redis database</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/go-analytics-plugins" title="Analytics" bottom-title="Golang" >}}

<h4>Analytics Manipulation</h4>
<p>Manipulates Tyk analytics records</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/grpc_go-auth-pre_headerinject_authhook" title="Auth" bottom-title="gRPC" >}}

<h4>Header Injection & Auth</h4>
<p>Example of header injection and authentication in gRPC plugin</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/grpc_go-pre-aws_lambda" title="Integration" bottom-title="gRPC" >}}

<h4>AWS Lambda Invocation</h4>
<p>Invokes an AWS Lambda function</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/grpc_node-auth-simple" title="Auth" bottom-title="gRPC" >}}

<h4>Simple Node Auth</h4>
<p>Basic authentication example in Node.js with config access</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/grpc_java-auth-jwt_decoder_repackager" title="Auth" bottom-title="gRPC" >}}

<h4>JWT Decoder & Repackager</h4>
<p>Decodes JWT, inserts a claim, and re-signs it</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/grpc_java-post-insert_metadata_as_header" title="Metadata" bottom-title="gRPC" >}}

<h4>Metadata Header Insertion</h4>
<p>Inserts key metadata from the portal as an HTTP header</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/grpc_dotnet-auth_sql_basicauth" title="Auth" bottom-title="gRPC" >}}

<h4>SQL Basic Auth</h4>
<p>Performs authentication check against a SQL server</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/grpc_ruby-pre-header_modify" title="Header" bottom-title="gRPC" >}}

<h4>Header Modification</h4>
<p>Modifies an HTTP header</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/grpc_python-pre-insert_header" title="Header" bottom-title="gRPC" >}}

<h4>Header Insertion</h4>
<p>Inserts an HTTP header</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/js-pre-insert_header" title="Header" bottom-title="Javascript" >}}

<h4>Tracing ID Header Insertion</h4>
<p>Inserts a tracing ID in the header</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/js-pre-mtls_token_auth" title="Auth" bottom-title="Javascript" >}}

<h4>Auth Token & mTLS</h4>
<p>Implements authentication token and mTLS protection</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/js-pre-token_inspection" title="Auth" bottom-title="Javascript" >}}

<h4>Token Validity Check</h4>
<p>Evaluates the validity of a Tyk token</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/js-pre-post-waf" title="Security" bottom-title="Javascript" >}}

<h4>Web Application Firewall</h4>
<p>Checks API requests against a WAF</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/js-post_auth-checks_path_against_metadata" title="Auth" bottom-title="Javascript" >}}

<h4>Path & Metadata Check</h4>
<p>Checks request path against user metadata and denies if match</p>

{{< /badge >}}

{{< badge href="https://gist.github.com/letzya/ba7c2cd833c11fac61ae4a1d1908f1dc" title="Auth" bottom-title="Javascript" >}}

<h4>OAuth2 Client for Auth0</h4>
<p>Implements Tyk as an OAuth2 client using client credentials flow with Auth0</p>

{{< /badge >}}

{{< badge href="https://gist.github.com/letzya/7e852181643e871481a7997ae3d5b84a" title="Auth" bottom-title="Javascript" >}}

<h4>OAuth2 Client for Azure</h4>
<p>Implements Tyk as an OAuth2 client using client credentials flow with Azure</p>

{{< /badge >}}

{{< badge href="https://gist.github.com/letzya/7df4dbc37f2f075795995efb8e205d3e" title="Transform" bottom-title="Javascript" >}}

<h4>XML to JSON Transform</h4>
<p>Demonstrates response body transform from XML to JSON</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/ve_formdata-post" title="Request" bottom-title="Javascript" >}}

<h4>FormData POST</h4>
<p>Makes a POST request with FormData to upstream</p>

{{< /badge >}}

{{< badge href="https://github.com/TykTechnologies/custom-plugin-examples/tree/master/plugins/ve_createkey.md" title="Key Management" bottom-title="Javascript" >}}

<h4>API Key Creation</h4>
<p>Creates an API key via the Dashboard API</p>

{{< /badge >}}

{{< /grid >}}
Loading
Loading