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

fix internal links #3

Merged
merged 2 commits into from
Apr 19, 2024
Merged
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
8 changes: 4 additions & 4 deletions docs/Authentication.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
This page describes how to authenticate requests to the COMS API. The [Authentication Modes](Configuration.md#authentication-modes) must be enabled in the COMS configuration.
This page describes how to authenticate requests to the COMS API. The [Authentication Modes](Config.md#authentication-modes) must be enabled in the COMS configuration.

**Note:** The BC Gov Hosted COMS service only allows OIDC Authentication using JWT's issued by the [Pathfinder SSO `standard` keycloak realm](https://github.com/bcgov/sso-keycloak/wiki#standard-service)).

## OIDC Authentication

With [OIDC mode](Configuration.md#oidc-keycloak) enabled, requests to the COMS API can be authenticated using a **User ID token** (JWT) issued by an OIDC authentication realm. The JWT should be added in an Authorization header (type `Bearer` token).
With [OIDC mode](Config.md#oidc-keycloak) enabled, requests to the COMS API can be authenticated using a **User ID token** (JWT) issued by an OIDC authentication realm. The JWT should be added in an Authorization header (type `Bearer` token).

COMS will only accept JWT's issued by one OIDC realm (specified in the COMS config). JWT's are typically issued to an application and saved to a user's browser when he/she signs-in to a website through the [Authorization Code Flow](https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth). Both the website (client app) and the instance of COMS must be [configured to use the same OIDC authentication realm](https://github.com/bcgov/common-object-management-service/blob/master/app/README.md#keycloak-variables) in order for the JWT to be valid.

Expand All @@ -31,12 +31,12 @@ COMS uses the redirect flow by default because it avoids unnecessary network hop

## Basic Auth

If [Basic Auth Mode](Configuration.md#basic-auth) is enabled in your COMS instance, requests to the COMS API can be authenticated using an HTTP Authorization header (type `Basic`) containing the username and password configured in COMS.
If [Basic Auth Mode](Config.md#basic-auth) is enabled in your COMS instance, requests to the COMS API can be authenticated using an HTTP Authorization header (type `Basic`) containing the username and password configured in COMS.

This mode offers more direct access for a 'service account' authorized in the scope of the application rather than for a specific user and by-passes the COMS object/bucket permission model.

Basic Auth mode is not available on the BC Gov hosted COMS service.

## Unauthenticated Mode

[Unauthenticated Mode](Configuration.md#unauthenticated-auth) configuration is generally recommended when you expect to run COMS in a highly secured network environment and do not have concerns about access control to objects as you have another application handling that already.
[Unauthenticated Mode](Config.md#unauthenticated-auth) configuration is generally recommended when you expect to run COMS in a highly secured network environment and do not have concerns about access control to objects as you have another application handling that already.
2 changes: 1 addition & 1 deletion docs/Buckets.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

### Configuring Buckets

- COMS is [configured with a 'default' bucket](Configuration.md#object-storage). Various object management endpoints will use this bucket if no `bucketId` parameter is provided. (**Note:** the default bucket fall-back behaviour is not available in the BC Gov Hosted COMS service.)
- COMS is [configured with a 'default' bucket](Config.md#object-storage). Various object management endpoints will use this bucket if no `bucketId` parameter is provided. (**Note:** the default bucket fall-back behaviour is not available in the BC Gov Hosted COMS service.)

- Additional buckets can be added to the COMS system using the [createBucket](https://coms.api.gov.bc.ca/api/v1/docs#tag/Bucket/operation/createBucket) endpoint.

Expand Down
12 changes: 4 additions & 8 deletions docs/configuration.md → docs/Config.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
# Configuration

This page outlines the general deployment decisions you will need to consider before standing up COMS and is mainly intended for a technical audience, and for people who want to have a better understanding of how the system features interact with each other. For instructions on running COMS, please refer to our [Application README](https://github.com/bcgov/common-object-management-service/blob/master/app/README.md).


- [Object Storage](#object-storage)
- [Authentication Modes](#authentication-modes)
- [Bucket Credentials Encryption](#bucket-credential-encryption)
- [Privacy Controls](#privacy-controls)

- [Object Storage](#object-storage)
- [Authentication Modes](#authentication-modes)
- [Bucket Credentials Encryption](#bucket-credential-encryption)
- [Privacy Controls](#privacy-controls)

The configuration of COMS is done using the NodeJS [config](https://www.npmjs.com/package/config) library.
environment variables for the COMS application are listed [here](https://raw.githubusercontent.com/bcgov/common-object-management-service/master/app/config/custom-environment-variables.json). These variables can be created in each deployment environment. In this page we explain these configuration options:
Expand Down
4 changes: 1 addition & 3 deletions docs/Hosted-Service-Onboarding.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,12 @@ Some important aspects of the hosted service to consider:

### Privacy Controls

- The stricter [Privacy Controls](Configuration.md#privacy-controls) setting is enabled in the Hosted service (requires `READ` permission on bucket or object to discover or access the file and related data). This removes the abiility to search for objects that you don't have permissions for.
- The stricter [Privacy Controls](Config.md#privacy-controls) setting is enabled in the Hosted service (requires `READ` permission on bucket or object to discover or access the file and related data). This removes the abiility to search for objects that you don't have permissions for.

### Additional features

- **BCBox Integration:** Using the Hosted COMS service has the added benefit of being able to integrate your application with [BCBox](https://bcbox.nrs.gov.bc.ca/) - a hosted drop-box type interface for sharing files.

- A **Synchronization** feature is [coming soon](Product-Roadmap.md) that will allow COMS to manage objects that were in the bucket or are handled outside of the COMS API.

### Environments

As part of your development workflow, ensure your application is using the correct COMS environment. **The Hosted COMS service only accepts User Auth tokens issued in the corresponding SSO 'Standard' realm.**
Expand Down
4 changes: 2 additions & 2 deletions docs/Hosting-Considerations.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ Feature Comparison:
|   Database Custodians |   Us |   You
|   Object Storage Custodians |   You |   You
| &nbsp; Multi-bucket support | <ul><li>[x] </li></ul> | <ul><li>[x] </li></ul>
| &nbsp; Strict [Privacy mode](Configuration.md#privacy-controls) | <ul><li>[x] </li></ul> | &nbsp; Configurable
| &nbsp; [No-Auth mode](Configuration.md#unauthenticated)| <ul><li>[ ] </li></ul> | &nbsp; Configurable
| &nbsp; Strict [Privacy mode](Config.md#privacy-controls) | <ul><li>[x] </li></ul> | &nbsp; Configurable
| &nbsp; [No-Auth mode](Config.md#unauthenticated)| <ul><li>[ ] </li></ul> | &nbsp; Configurable
| &nbsp; Custom configuration options | <ul><li>[ ] </li></ul> | <ul><li>[x] </li></ul>
2 changes: 1 addition & 1 deletion docs/Metadata-Tag.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,4 @@ The search endpoint also allows you to search objects with a specific key withou

These metadata and tag selectors can also be combined with other supported query parameters for [the search query endpoint](https://coms-dev.api.gov.bc.ca/api/v1/docs#tag/Object/operation/searchObjects).

Search results can also be scoped to a current user's permissions by enabling the COMS `PrivacyMask` [Privacy Configuration](Configuration#privacy-controls).
Search results can also be scoped to a current user's permissions by enabling the COMS `PrivacyMask` [Privacy Configuration](Config.md#privacy-controls).
2 changes: 1 addition & 1 deletion docs/Permissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ The above permission system will only be enforced if your instance of COMS is ru
- Both `NOAUTH` and `BASICAUTH` modes will completely ignore permissions as they are not in scope of permission and security enforcement. This applies whether there is a backing database or not.
- While running in `FULLAUTH` mode, if the client authenticates with a Basic authorization header, permissions are ignored as basic auth behaves as a system superuser and has "sudo" permissions to the COMS system. This applies whether there is a backing database or not.

For more specific information on COMS deployment modes and how they differ, please take a look at the COMS [Configuration guide](Configuration#authentication-modes).
For more specific information on COMS deployment modes and how they differ, please take a look at the COMS [Configuration guide](Config.md#authentication-modes).

## Invite Links

Expand Down
4 changes: 2 additions & 2 deletions docs/Self-Hosting-COMS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ To compare with features with the BC Gov Hosted Service, see the [Hosting Consid
- Your application uses a custom OIDC realm or has custom integration requirements with other IDPs.
- You just need a user-friendly, REST-based S3 client 'wrapper'.
- You can configure COMS to suit your needs:
- Refer to the different [Authentication Modes](Configuration#authentication-modes)
- Refer to the different [Authentication Modes](Config.md#authentication-modes)
- Use the default S3 bucket to use for all operations
- Disable the strict [Privacy Controls](Configuration#privacy-controls) to make object metadata searchable
- Disable the strict [Privacy Controls](Config.md#privacy-controls) to make object metadata searchable
- You want to modify COMS source code before running (it's a REST API built with NodeJS and Express)
- You want to be the custodians of the COMS database that contains user permissions and document metadata

Expand Down
Loading
Loading