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

docs: New landing page #853

Merged
merged 10 commits into from
Nov 9, 2023
Merged
3 changes: 2 additions & 1 deletion docs/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ params:
name: Apache 2.0
url: https://github.com/dadrus/heimdall/blob/master/LICENSE
author: Dimitrij Drus
description: Heimdall is an open source identity aware proxy (IAP) and access control decision service, designed for cloud native applications
description: An open source Identity Aware Proxy and an Access Control Decision service for cloud native applications
github:
user: dadrus
project: heimdall
Expand All @@ -88,6 +88,7 @@ params:
version_file: /heimdall/data.json
search_index_file: /heimdall/x-current-version/index.json
path_prefix: /heimdall/x-current-version
docs_entry_point: /docs/welcome.adoc

module:
mounts:
Expand Down
51 changes: 43 additions & 8 deletions docs/content/_index.adoc
Original file line number Diff line number Diff line change
@@ -1,14 +1,49 @@
---
title: "Index"
title: "Heimdall - a cloud native Identity Aware Proxy and Access Control Decision service"
date: 2022-06-05T20:03:18+02:00
draft: false
---

{{< seo
title="Verify access all the time and everywhere with Heimdall"
link="/docs/getting_started/concepts.adoc"
link_title="Get Started"
>}}
Adopt Zero Trust architecture by authenticating, enriching and authorizing incoming HTTP requests at any level. No need to learn new protocols, authentication and authorization frameworks. You can still use them.
{{< /seo >}}
{{% seo title="Verify access all the time and everywhere with Heimdall" alignment="right" %}}
Adopt Zero Trust architecture by authenticating, enriching and authorizing incoming HTTP requests at any level. No need to learn new protocols, authentication and authorization frameworks. Just how to glue them with heimdall.

link:{{< relref "/docs/getting_started/concepts.adoc" >}}[Get Started]
{{% /seo %}}

{{% seo title="Define rules reflecting your requirements" %}}
Use declarative techniques you are already familiar with

[source, yaml]
----
apiVersion: heimdall.dadrus.github.com/v1alpha2
kind: RuleSet
metadata:
name: My awesome service
spec:
rules:
- id: my_api_rule
match:
url: http://127.0.0.1:9090/api/<**>
execute:
- authenticator: keycloak
- authorizer: opa
----

Create rules for each upstream and path you want to secure, respectively, which deviates from your defaults, loading them from a variety of sources such as Kubernetes custom resources, S3 buckets, any HTTPs endpoints or regular files.

link:{{< relref "/docs/configuration/rules/overview.adoc" >}}"[Learn more about rules]
{{% /seo %}}

{{% seo title="The value you get" %}}
{{% grid %}}
{{% gridentry title="Reduce the cognitive load of your team" %}}By outsourcing authentication and authorization decisions to heimdall you can reduce the complexity of your code base, free resources and reduce the cognitive load of your team substantially.{{% /gridentry %}}
{{% gridentry title="Secure defaults for your services" %}}Define logic to be executed if no rule matches{{% /gridentry %}}
{{% gridentry title="Define mechanisms once, reuse many times" %}}Use rules to compose reusable steps into the logic you need individually for your services{{% /gridentry %}}
{{% gridentry title="Add context information to requests" %}}Dynamically enrich requests with information like e.g. user data to help you make authorization decisions and reduce dependencies in your code{{% /gridentry %}}
{{% gridentry title="Common Expression Language" %}}Use Common Expression Language to implement complex pipeline execution logic and simple authorization within a pipeline{{% /gridentry %}}
{{% gridentry title="Authorization systems freedom" %}}Use existing authorization systems, like OpenFGA, Ory Keto, Open Policy Agent and alike and combine them if required to get the best out of different worlds{{% /gridentry %}}
{{% gridentry title="OpenID Connect & OAuth2" %}}Use existing authentication systems supporting OpenID Connect or OAuth2{{% /gridentry %}}
{{% gridentry title="Authentication systems freedom" %}}Combine existing authentication systems to protect different areas of your system with different authentication systems. E.g. you can use one system to protect customer facing functionality and yet another for managing access to your backoffice specific functionality{{% /gridentry %}}
{{% /grid %}}

{{% /seo %}}
4 changes: 2 additions & 2 deletions docs/themes/mytheme/layouts/index.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{{- define "main" -}}

{{- partial "hero.html" . -}}
<div class="container pb-5">
{{ .Content }}
{{ .Content }}
</div>

{{- end -}}
2 changes: 1 addition & 1 deletion docs/themes/mytheme/layouts/partials/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</button>
<div class="offcanvas offcanvas-end bg-dark" tabindex="-1" id="mainMenuContent" data-bs-scroll="true" aria-labelledby="mainMenuContentLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title text-white" id="mainMenuContentLabel">Heimdall</h5>
<h5 class="offcanvas-title text-white" id="mainMenuContentLabel">{{ .Site.Title }}</h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="offcanvas" aria-label="Close main menu"></button>
</div>
<div class="offcanvas-body">
Expand Down
8 changes: 8 additions & 0 deletions docs/themes/mytheme/layouts/partials/hero.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<div class="bg-light px-4 py-5 text-center">
<h1 class="display-5 fw-bold text-body-emphasis pt-5">{{ .Site.Title }}</h1>
<div class="col-lg-6 mx-auto">
<p class="lead fs-4 mt-4 mb-4">{{ .Site.Params.Description }}</p>
<a class="btn btn-outline-primary fw-semibold mt-4 mx-3" href="https://github.com/{{.Site.Params.github.user}}/{{.Site.Params.github.project}}/releases">Download</a>
<a class="btn btn-outline-primary fw-semibold mt-4 mx-3" href="{{ relref . .Site.Params.docs_entry_point }}">Read the Docs</a>
</div>
</div>
6 changes: 6 additions & 0 deletions docs/themes/mytheme/layouts/shortcodes/grid.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{{ $_hugo_config := `{ "version": 1 }` }}
++++
<div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 row-cols-lg-4 g-4">
{{ .Inner }}
</div>
++++
9 changes: 9 additions & 0 deletions docs/themes/mytheme/layouts/shortcodes/gridentry.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{{ $_hugo_config := `{ "version": 1 }` }}
++++
<div class="col d-flex align-items-start">
<div>
<h3 class="fw-bold mb-0 fs-4 text-body-emphasis">{{ .Get "title" }}</h3>
<p>{{ .Inner }}</p>
</div>
</div>
++++
12 changes: 6 additions & 6 deletions docs/themes/mytheme/layouts/shortcodes/seo.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<div class="container py-5">
<h1 class="display-5 fw-bold col-md-8">{{ .Get "title" }}</h1>
<p class="col-md-8 fs-4">{{ .Inner }}</p>
{{ $link := .Get "link" }}
{{ $linkTitle := .Get "link_title" }}
<a class="btn btn-primary btn-lg" type="button" href="{{ relref . $link }}">{{ $linkTitle }}</a>
{{ $_hugo_config := `{ "version": 1 }` }}
<div class="seo container py-5">
<h1 class="display-6 fw-bold pt-4 text-body-emphasis col-md-8">{{ .Get "title" }}</h1><br>
<div class="col-md-12 fs-5 mb-4">
{{ .Inner }}
</div>
</div>