Skip to content

Commit

Permalink
Added linting rules
Browse files Browse the repository at this point in the history
  • Loading branch information
ntotten committed Dec 31, 2024
1 parent d41cfd9 commit f349598
Show file tree
Hide file tree
Showing 48 changed files with 1,277 additions and 19 deletions.
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,16 @@ docs/dev-portal/zudoku/
# Sentry Config File
.env.sentry-build-plugin



# We want to ignore our StylesPath *except* for our local
# `vocabularies/Base` directory.

.github/styles/*
!.github/styles/config/

.github/styles/config/*
!.github/styles/config/vocabularies/

.github/styles/config/vocabularies/*
!.github/styles/config/vocabularies/Base
1 change: 1 addition & 0 deletions .hyperlint/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
content_dir: /docs
9 changes: 9 additions & 0 deletions .vale.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
StylesPath = styles

MinAlertLevel = suggestion

Vocab = Base
Packages = Microsoft, MDX

[*.{md,mdx}]
BasedOnStyles = Vale, Microsoft
37 changes: 18 additions & 19 deletions docs/dedicated/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,15 @@ sidebar_label: Architecture

Zuplo's managed dedicated instances are designed to be highly available,
scalable, and secure. With a managed dedicated instance of Zuplo, your API
Gateway is isolated to its own instance(s) and when running in on a cloud
provider that supports it, a dedicated VPC as well. This document outlines the
components and architecture of a managed dedicated instance of a Zuplo API
Gateway.
Gateway is isolated to its own instances and when running in on a cloud provider
that supports it, a dedicated VPC as well. This document outlines the components
and architecture of a managed dedicated instance of a Zuplo API Gateway.

## Components

A managed dedicated instance of Zuplo consists of the following components:

- **API Gateway**: The API Gateway is the core component of Zuplo. It is the
- **API Gateway**: The API Gateway is the core component of Zuplo. It's the
component that receives incoming requests, routes them to the appropriate
backend, and returns the response to the client. The API Gateway is
responsible for authentication, authorization, rate limiting, and other
Expand All @@ -25,7 +24,7 @@ A managed dedicated instance of Zuplo consists of the following components:
[API Key Authentication](../articles/api-key-management.md), and
[Monetization](../articles/monetization.md).
- **Control Plane**: The Control Plane is the component that manages the
configuration of the API Gateway. It is responsible for deploying new
configuration of the API Gateway. It's responsible for deploying new
configurations, managing the lifecycle of the API Gateway, and monitoring the
health of the API Gateway.
- **Analytics and Logging**: Zuplo can provide analytics and logging for your
Expand All @@ -35,29 +34,29 @@ A managed dedicated instance of Zuplo consists of the following components:
allows developers to interact with your API. It provides documentation,
testing tools, and other features to help developers integrate with your API.

## Custom Requirements
## Custom requirements

A managed dedicated instance of Zuplo can be customized to meet your specific
requirements. Examples of custom requirements include:

- **Regions & Availibility Zones** - Zuplo can deploy to multiple regions,
- **Regions & Availability Zones** - Zuplo can deploy to multiple regions,
availability zones, or data centers to provide high availability and low
latency.
- **Developer Portal Hosting** - The developer portal is typically hosted from a
CDN managed by Zuplo. Our default configuration serves the developer portal's
static assest from a global CDN, but we can configure your developer portal to
static assets from a global CDN, but we can configure your developer portal to
use only regional CDN locations if required.
- **Networking** - Zuplo can be deployed with a variety of network
configurations. To learn more see [Networking](./networking.md).
- **Disabling Features** - Zuplo can disable features that are not needed for
- **Disabling Features** - Zuplo can disable features that aren't needed for
your use case or that don't meet your security or compliance requirements. For
example, if you don't want to use the built-in API analytics and instead want
to use your own analytics, we can disable the built-in analytics. When our
built-in analytics is disabled, we do not collect or store analytics data for
built-in analytics is disabled, we don't collect or store analytics data for
your APIs.
- **Custom Logging & Monitoring** - Zuplo can integrate with your existing
logging and monitoring systems. Logs and other data are sent directly from the
API Gateway to your logging provider. Zuplo does not collect or store this
API Gateway to your logging provider. Zuplo doesn't collect or store this
data.

## Security
Expand Down Expand Up @@ -108,31 +107,31 @@ be customized to meet your specific requirements.

<ManagedDedicatedDeploymentArchitecture />

### Multiple Regions
### Multiple regions

It is common practice to deploy your API Gateway to multiple regions to provide
higher availible, lower latency, and to meet regulatory requirements. Zuplo can
It's common practice to deploy your API Gateway to multiple regions to provide
higher available, lower latency, and to meet regulatory requirements. Zuplo can
deploy your API Gateway to multiple regions and manage the deployment to each
region without any downtime.

When your API Gateway is deployed to multiple regions, Zuplo uses a global load
balancer to route traffic to the closest region. This provides low latency
access to your APIs for end-users around the world. The load balancer is also
configured to handle failover in case of an outage in one region.
configured to handle fail over in case of an outage in one region.

<ManagedDedicatedMultiRegionArchitecture />

### Environments

Customers running managed dedicated Zuplo typically have multiple instances of
Zuplo deployed. The most common case is to have a production instance(s) and a
Zuplo deployed. The most common case is to have a production instances and a
non-production instance. The non-production instance is used to deploy and test
changes to your API Gateway before deploying them to production.

Each instance is isolated and runs in its own VPC or network.

It is possible to have multiple instances depending on your requirements. For
example, some customers have seperate instances for production, staging, and
It's possible to have multiple instances depending on your requirements. For
example, some customers have separate instances for production, staging, and
development. For most customer though, a single production and a single
development instance is sufficient.

Expand Down
21 changes: 21 additions & 0 deletions styles/.vale-config/1-MDX.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[formats]
mdx = md

[*.mdx]
CommentDelimiters = {/*, */}

# Exclude:
#
# `import ...`, `export ...`
# `<Component ... />`
# `<Component>...</Component>`
# `{ ... }`
TokenIgnores = (?sm)((?:import|export) .+?$), \
(?<!`)(<\w+ ?.+ ?\/>)(?!`), \
(<[A-Z]\w+>.+?<\/[A-Z]\w+>)

# Exclude:
#
# `<Component \n ... />`
BlockIgnores = (?sm)^(<\w+\n .*\s\/>)$, \
(?sm)^({.+.*})
11 changes: 11 additions & 0 deletions styles/Custom/Dictionary.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
extends: existence
message: "'%s' is not in the dictionary."
level: suggestion
ignorecase: false
nonword: true
tokens:
- Zuplo
- zuplo
- vercel
- zudoku
- zups
9 changes: 9 additions & 0 deletions styles/Microsoft/AMPM.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
extends: existence
message: Use 'AM' or 'PM' (preceded by a space).
link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/date-time-terms
level: error
nonword: true
tokens:
- '\d{1,2}[AP]M'
- '\d{1,2} ?[ap]m'
- '\d{1,2} ?[aApP]\.[mM]\.'
30 changes: 30 additions & 0 deletions styles/Microsoft/Accessibility.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
extends: existence
message: "Don't use language (such as '%s') that defines people by their disability."
link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/accessibility-terms
level: suggestion
ignorecase: true
tokens:
- a victim of
- able-bodied
- an epileptic
- birth defect
- crippled
- differently abled
- disabled
- dumb
- handicapped
- handicaps
- healthy person
- hearing-impaired
- lame
- maimed
- mentally handicapped
- missing a limb
- mute
- non-verbal
- normal person
- sight-impaired
- slow learner
- stricken with
- suffers from
- vision-impaired
64 changes: 64 additions & 0 deletions styles/Microsoft/Acronyms.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
extends: conditional
message: "'%s' has no definition."
link: https://docs.microsoft.com/en-us/style-guide/acronyms
level: suggestion
ignorecase: false
# Ensures that the existence of 'first' implies the existence of 'second'.
first: '\b([A-Z]{3,5})\b'
second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)'
# ... with the exception of these:
exceptions:
- API
- ASP
- CLI
- CPU
- CSS
- CSV
- DEBUG
- DOM
- DPI
- FAQ
- GCC
- GDB
- GET
- GPU
- GTK
- GUI
- HTML
- HTTP
- HTTPS
- IDE
- JAR
- JSON
- JSX
- LESS
- LLDB
- NET
- NOTE
- NVDA
- OSS
- PATH
- PDF
- PHP
- POST
- RAM
- REPL
- RSA
- SCM
- SCSS
- SDK
- SQL
- SSH
- SSL
- SVG
- TBD
- TCP
- TODO
- URI
- URL
- USB
- UTF
- XML
- XSS
- YAML
- ZIP
Loading

0 comments on commit f349598

Please sign in to comment.