Skip to content

Commit

Permalink
Add github docs workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
Gopakumar Choorakkot Edakkunni committed Aug 14, 2024
1 parent b661e97 commit 8ead691
Show file tree
Hide file tree
Showing 11 changed files with 126 additions and 48 deletions.
78 changes: 78 additions & 0 deletions .github/workflows/hugo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Sample workflow for building and deploying a Hugo site to GitHub Pages
name: Deploy Hugo site to Pages

on:
# Runs on pushes targeting the default branch
push:
branches:
- main

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

# Default to bash
defaults:
run:
shell: bash

jobs:
# Build job
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.85.0
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_0.85.0_Linux-64bit.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Install Dart Sass
run: sudo snap install dart-sass
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Install Node.js dependencies
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
- name: Build with Hugo
env:
HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache
HUGO_ENVIRONMENT: production
TZ: America/Los_Angeles
run: |
hugo \
--gc \
--minify \
--baseURL "${{ steps.pages.outputs.base_url }}/"
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
4 changes: 2 additions & 2 deletions content/en/Architecture/accessControl/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ Access control via the Access Policy at the Appgroup ID level is done as given b

1. When a user logs into a nextensio gateway, nextensio gets all the "attributes" of that user
2. When that user tries to access a service appx.awesomecustomer.com, we first do a route lookup
as described [here](/architecture/routing.html). After route lookup, we figure out the "AppGroup ID"
as described [here](/docs/architecture/routing.html). After route lookup, we figure out the "AppGroup ID"
(connector) to be used to carry this traffic
3. Nextensio then executes the access policy configured in the [policy section](/configurations/policies.html)
3. Nextensio then executes the access policy configured in the [policy section](/docs/configurations/policies.html)
to match these user attributes with values specified directly in the policy or by looking up the AppGroup ID's
attributes to return a true (allowed) or false (denied) value.
26 changes: 13 additions & 13 deletions content/en/Architecture/onboarding/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ description: >

The below picture gives a high level overview of nextensio architecture

![](/architecture/onboarding/architecture.jpg)
![](/docs/architecture/onboarding/architecture.jpg)

The picture shows

Expand Down Expand Up @@ -56,7 +56,7 @@ can be modified later by the customer.

Front page | Signup Page
:-------------------------:|:-------------------------:
![](/architecture/onboarding/signup_1.jpg) | ![](/architecture/onboarding/signup_2.jpg)
![](/docs/architecture/onboarding/signup_1.jpg) | ![](/docs/architecture/onboarding/signup_2.jpg)

### STEP2: Create users

Expand All @@ -68,11 +68,11 @@ nearest / geo-proximal gateway.

Add user | Download user agent image
:-------------------------:|:-------------------------:
![](/architecture/onboarding/user_add.jpg) | ![](/architecture/onboarding/images.jpg)
![](/docs/architecture/onboarding/user_add.jpg) | ![](/docs/architecture/onboarding/images.jpg)

For initial bootstrapping, the comment about "You have no attributes for users" can be ignored.
It is covered below in step 4 and also explained in more detail in section
[Policies and Attributes](/architecture/policyattr.html).
[Policies and Attributes](/docs/architecture/policyattr.html).
Also note that the first admin user who signed up will automatically show up in the users list.

NOTE: Nextensio will soon support federation with customer's Identity Provider and then the user creation
Expand All @@ -93,10 +93,10 @@ and App-Y might be appy.awesomecustomer.com.

Add AppGroup
:-------------------------:
![](/architecture/onboarding/appgroup_add.jpg)
![](/docs/architecture/onboarding/appgroup_add.jpg)

For initial bootstrapping, the comment about "You have no attributes for AppGroup" can be ignored. It will be
covered in step 4 below and also explained in more detail in section [Policies and Attributes](/architecture/policyattr.html)
covered in step 4 below and also explained in more detail in section [Policies and Attributes](/docs/architecture/policyattr.html)

* The AppGroup ID is any unique ID in an email format (does not have to be a valid email ID).
* The AppGroup Name is just a descriptive string
Expand Down Expand Up @@ -151,12 +151,12 @@ know what the attributes are - they are defined and created exclusively by custo

Add Apps
:-------------------------:
![](/architecture/onboarding/host_add.jpg)
![](/docs/architecture/onboarding/host_add.jpg)

So in the above page, we would add TWO applications - appx.awesomecustomer.com and appy.awesomecustomer.com.
The attributes can be left alone for now since adding the applications is sufficient for bootstrapping.
We can similarly skip the AppGroup attributes for bootstrapping.
The full capabilities will be explained in more detail in section [Policies and Attributes](/architecture/policyattr.html)
The full capabilities will be explained in more detail in section [Policies and Attributes](/docs/architecture/policyattr.html)

### STEP5: Define and create policies

Expand Down Expand Up @@ -187,7 +187,7 @@ or inside a kubernetes cluster etc., - however customer chooses.

Connector Image
:-------------------------:
![](/architecture/onboarding/images.jpg)
![](/docs/architecture/onboarding/images.jpg)



Expand All @@ -198,8 +198,8 @@ Before launching a connector, the customer needs to do two things :

Connector Authentication Key
:-------------------------:
![](/architecture/onboarding/connector_key.jpg)
![](/architecture/onboarding/connector_key_copy.jpg)
![](/docs/architecture/onboarding/connector_key.jpg)
![](/docs/architecture/onboarding/connector_key_copy.jpg)


On the AppGroup configuration page, pick the AppGroup ID for which the connector needs to be launched and click on the
Expand Down Expand Up @@ -231,7 +231,7 @@ or it can just be left to log into the console

Gateway Configuration page | List of available gateways
:-------------------------:|:-------------------------:
![](/architecture/onboarding/gateway_config.png) | ![](/architecture/onboarding/gateway_list.jpg)
![](/docs/architecture/onboarding/gateway_config.png) | ![](/docs/architecture/onboarding/gateway_list.jpg)

* image: Nextensio is a fully managed solution. Nextensio takes care of upgrading the gateways. This
gives an option to specify a different image. We recommend not to change the value here.
Expand Down Expand Up @@ -275,4 +275,4 @@ there are no external ripple effects
## Next

Having got an introduction to what Nextensio does, let us see all the flexible policies that Nextensio
provides a customer - [Policies and Attributes](/architecture/policyattr.html)
provides a customer - [Policies and Attributes](/docs/architecture/policyattr.html)
20 changes: 10 additions & 10 deletions content/en/Architecture/policyattr/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: >
## Introduction

Policies play an important role in Nextensio. Lets look at some sample use cases, continuing with
the awesomecustomer.com App-X and App-Y examples from the [Architecture](/architecture.html) section.
the awesomecustomer.com App-X and App-Y examples from the [Architecture](/docs/architecture.html) section.
Once we run through the sample use cases, we will have a fair idea of what attributes and
policies are and how to use them.

Expand Down Expand Up @@ -267,7 +267,7 @@ if no value is entered).

Attribute Editor
:-------------------------:
![](/architecture/policyattr/attredit.jpg)
![](/docs/architecture/policyattr/attredit.jpg)

The above picture shows the attribute editor populated with the attributes we discussed above, with
the corresponding types (string, number). We do not have any example attribute that is multi-value (array),
Expand All @@ -282,36 +282,36 @@ The attribute editor cannot ensure correctness of data.
### App Attributes

We show below adding the attributes required for the AWS/Digital ocean example for application
appx.awesomecustomer.com. This section also needs an understanding of the [Routing](/architecture/routing.html)
appx.awesomecustomer.com. This section also needs an understanding of the [Routing](/docs/architecture/routing.html)
section to get a complete picture

Add App
:-------------------------:
![](/architecture/policyattr/host_add.jpg)
![](/docs/architecture/policyattr/host_add.jpg)

Edit App
:-------------------------:
![](/architecture/policyattr/host_edit.jpg)
![](/docs/architecture/policyattr/host_edit.jpg)

Add attributes for tags
:-------------------------:
![](/architecture/policyattr/hostattr_edit.jpg)
![](/docs/architecture/policyattr/hostattr_edit.jpg)

Similarly we can add the second tag "do" with attribute employmentType set to "consultant"

### User Attributes

Add/Modify attributes
:-------------------------:
![](/architecture/policyattr/userattr_edit.jpg)
![](/docs/architecture/policyattr/userattr_edit.jpg)

The picture shows the attributes we discussed in the examples above, added to the "admin" user

### AppGroup Attributes

Add/Modify attributes
:-------------------------:
![](/architecture/policyattr/appattr_edit.jpg)
![](/docs/architecture/policyattr/appattr_edit.jpg)

The picture shows the attributes we discussed in the examples above, added to the "appxappy" appgroup

Expand All @@ -331,7 +331,7 @@ will be able to migrate to the 'Expert' mode to develop more complex and powerfu
In 'Expert' mode, the policies are configured as shown below. Some templates to aid in writing policies are
also shown.

![](/architecture/policyattr/policy.jpg)
![](/docs/architecture/policyattr/policy.jpg)

There are separate policies, each used in a different context. Each policy has a name. The picture above
shows two policies - AccessPolicy and RoutePolicy. AccessPolicy is what controls all the "restrict appx/appy
Expand Down Expand Up @@ -952,4 +952,4 @@ route_tag = rtag {
## Next

Having understood attributes and policies, let us see how they are used in making routing decisions specifically -
[Routing](/architecture/routing.html)
[Routing](/docs/architecture/routing.html)
10 changes: 5 additions & 5 deletions content/en/Architecture/routing/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ url to derive the actual instance. The multiple instances of an application (or
therefore differentiated via a prefix tag and these tagged application names are the ones configured
as the services for the associated AppGroup ID (aka connector).

In the section on [Policies and Attributes](/architecture/policyattr.html), we talked
In the section on [Policies and Attributes](/docs/architecture/policyattr.html), we talked
about an example application appx.awesomecustomer.com present in two different data centers DCA and
DCB, hosted in AWS and Digital Ocean, and we talked about how we can use attributes to
route users to one or the other data center using attribute match. We left out a
Expand All @@ -50,7 +50,7 @@ configuration as below.

App Group Config | App config
:-------------------------:|:-------------------------:
![](/architecture/routing/appgroup_config.jpg) | ![](/architecture/routing/host_config.jpg)
![](/docs/architecture/routing/appgroup_config.jpg) | ![](/docs/architecture/routing/host_config.jpg)


appx.awesomecustomer.com is defined in the single AppGroup ID "[email protected]"
Expand Down Expand Up @@ -81,7 +81,7 @@ configure the service.

App Group Config | App config
:-------------------------:|:-------------------------:
![](/architecture/routing/appgroup_differ_config.jpg) | ![](/architecture/routing/host_differ_config.jpg)
![](/docs/architecture/routing/appgroup_differ_config.jpg) | ![](/docs/architecture/routing/host_differ_config.jpg)

Note that under the App config, we have defined two "tags" - one "aws" (indicating amazon) and another "do"
(indicating digital ocean).
Expand All @@ -107,10 +107,10 @@ a specific AppGroup ID that needs to be chosen for this traffic - we DO NOT expe
with those tag added URLs. Customer will just host appx.awesomecustomer.com in BOTH amazon and digital ocean

The exact details of how step2 does the "attribute match" is defined using policies as described in the
section on [Policies](/architecture/attrpolicy.html). In the 'Easy' mode, the policy is created by defining
section on [Policies](/docs/configurations/policies.html). In the 'Easy' mode, the policy is created by defining
rules for each App. In the 'Expert' mode, the policy can be written and edited directly.

## Next

The next topic of interest will be how to control which user can access what resources, in
section [Access Control](/architecture/accesscontrol.html)
section [Access Control](/docs/architecture/accesscontrol.html)
6 changes: 3 additions & 3 deletions content/en/Configurations/appgroups/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ refer to the [Attribute Editor section](../configurations/attributeeditor.html)

AppGroup Configuration
:-------------------------:
![](/configurations/appgroups/appgroup_add.jpg)
![](/docs/configurations/appgroups/appgroup_add.jpg)

* AppGroup ID: This is just in an email id format that will uniquely identify and authenticate an appgroup.
Note that it does NOT have to be a valid email id, it just needs to be in an email id format as
Expand All @@ -153,5 +153,5 @@ and usermanuals, identified by pos.awesomecustomer.com and manuals.awesomecustom
So we will enter pos.awesomecustomer.com,manuals.awesomecustomer.com. Basically, the URLs
identify the applications in this AppGroup ID. The Apps can be selected through a drop-down list.

For attributes, please refer to the [overview on policy and attributes](/architecture/policyattr.html)
and [access control](/architecture/accesscontrol.html) details about [configuring attribute editor](../configurations/attributeeditor.html)
For attributes, please refer to the [overview on policy and attributes](/docs/architecture/policyattr.html)
and [access control](/docs/architecture/accesscontrol.html) details about [configuring attribute editor](../configurations/attributeeditor.html)
4 changes: 2 additions & 2 deletions content/en/Configurations/attributeEditor/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ not available in the 'Easy' mode, which is the default mode.

Attribute Editor
:-------------------------:
![](/configurations/attributeEditor/attredit.jpg)
![](/docs/configurations/attributeEditor/attredit.jpg)

The purpose of attributes and where they are used etc. is also documented [here](/architecture/policyattr.html)
The purpose of attributes and where they are used etc. is also documented [here](/docs/architecture/policyattr.html)

### Handling attribute changes

Expand Down
8 changes: 4 additions & 4 deletions content/en/Configurations/hosts/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ refer to the [Attribute Editor section](../configurations/attributeeditor.html)

App definition
:-------------------------:
![](/configurations/hosts/host_add.jpg)
![](/docs/configurations/hosts/host_add.jpg)

* App: is a valid URL for the application

Expand All @@ -328,11 +328,11 @@ App definition

App routing config
:-------------------------:
![](/configurations/hosts/host_routes.jpg)
![](/docs/configurations/hosts/host_routes.jpg)

The example above shows an app defined with two routes - "aws" and "do", and each route has
a separate set of attributes. A route tag or prefix is just any string. For details on how its used in
routing, refer above or [routing](/architecture/routing.html)
routing, refer above or [routing](/docs/architecture/routing.html)

For attributes, please refer to the [overview on policy and attributes](/architecture/policyattr.html)
For attributes, please refer to the [overview on policy and attributes](/docs/architecture/policyattr.html)
and details about [configuring attribute editor](../configurations/attributeeditor.html)
6 changes: 3 additions & 3 deletions content/en/Configurations/policies/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -388,12 +388,12 @@ default attributes = {"exclude": ["_hostname", "_model", "_osMinor", "_osPatch"]

### Policy Configuration
:-------------------------:
![](/configurations/policies/policy.jpg)
![](/docs/configurations/policies/policy.jpg)

Nextensio policies are written in [Rego Language](https://www.openpolicyagent.org/docs/latest/policy-language/)

For an overview of the Route policy, refer to [routing](/architecture/routing.html).
For an overview of the Access policy, refer to [access control](/architecture/accescontrol.html)
For an overview of the Route policy, refer to [routing](/docs/architecture/routing.html).
For an overview of the Access policy, refer to [access control](/docs/architecture/accescontrol.html)

Policy configuration provides a text editor to edit any of the three policies. Care must be taken to
ensure that changes that impact the logic of a policy are validated first (how is TBD).
Expand Down
6 changes: 3 additions & 3 deletions content/en/Configurations/users/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ refer to the [Attribute Editor section](../configurations/attributeeditor.html)

Add user
:-------------------------:
![](/configurations/users/user_add.jpg)
![](/docs/configurations/users/user_add.jpg)

* User ID: A unique email id of the user

Expand All @@ -73,5 +73,5 @@ NOTE: In the next update, Nextensio will start supporting federation with
customer's Identity Provider / LDAP and at that point the list of users can be
exported from customer's Identity Provider instead of manually configuring here

For attributes, please refer to the [overview on policy and attributes](/architecture/policyattr.html)
and [access control](/architecture/accesscontrol.html) details about [configuring attribute editor](../configurations/attributeeditor.html)
For attributes, please refer to the [overview on policy and attributes](/docs/architecture/policyattr.html)
and [access control](/docs/architecture/accesscontrol.html) details about [configuring attribute editor](../configurations/attributeeditor.html)
Loading

0 comments on commit 8ead691

Please sign in to comment.