Skip to content

Commit

Permalink
Merge branch 'main' into renovate/lodash-4.x-lockfile
Browse files Browse the repository at this point in the history
  • Loading branch information
aidanm3341 authored Jun 20, 2024
2 parents 89ffc4d + b42ab9d commit 9aded71
Show file tree
Hide file tree
Showing 18 changed files with 16,046 additions and 180 deletions.
6 changes: 3 additions & 3 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

/calm/ @finos/architecture-as-code-maintainers

/cli/ @aidanm3341 @lbulanti-ms @willosborne @grahampacker-ms @jpgough-ms
/cli/ @aidanm3341 @lbulanti-ms @willosborne @grahampacker-ms @jpgough-ms @rocketstack-matt

/spectral/ @willosborne @lbulanti-ms @grahampacker-ms @jpgough-ms
/spectral/ @willosborne @lbulanti-ms @grahampacker-ms @jpgough-ms @rocketstack-matt

/translator/ @Budlee @matthewgardner @jpgough-ms @rocketstack-matt

/visualizer/ @aidanm3341 @Budlee @willosborne
/visualizer/ @aidanm3341 @Budlee @willosborne @rocketstack-matt
8 changes: 4 additions & 4 deletions calm/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# The Architecture as Code Specification
# Common Architecture Language Model

The Architecture as Code Specification (AasC) is a specification for defining system architectures in a machine and human-readable format.
The Common Architecture Language Model (CALM) is a specification for defining system architectures in a machine and human-readable format.

The intention of the AasC Specification is to enable a common language for describing system architectures, and to enable tooling to support the creation, validation, and visualization of architectures.
The intention of CALM is to enable a common language for describing system architectures, and to enable tooling to support the creation, validation, and visualization of architectures.

The AasC specification is considered to be a work in progress, and is currently in the early stages of development. The specification is currently being developed by the [Architecture as Code Community](https://devops.finos.org/docs/working-groups/aasc/).
CALM is considered to be a work in progress, and is currently in the early stages of development. The specification is currently being developed by the [Architecture as Code Community](https://devops.finos.org/docs/working-groups/aasc/).

43 changes: 39 additions & 4 deletions calm/pattern/api-gateway.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"const": "system"
},
"name": {
"const": "Python Based API Consumer"
"const": "API Consumer"
},
"unique-id": {
"const": "api-consumer"
Expand All @@ -73,7 +73,7 @@
"const": "system"
},
"name": {
"const": "Java Based API Producer"
"const": "API Producer"
},
"unique-id": {
"const": "api-producer"
Expand Down Expand Up @@ -118,14 +118,17 @@
},
"relationships": {
"type": "array",
"minItems": 3,
"minItems": 4,
"prefixItems": [
{
"$ref": "https://raw.githubusercontent.com/finos/architecture-as-code/main/calm/draft/2024-04/meta/core.json#/defs/relationship",
"properties": {
"unique-id": {
"const": "api-consumer-api-gateway"
},
"description": {
"const": "Issue calculation request"
},
"relationship-type": {
"const": {
"connects": {
Expand Down Expand Up @@ -156,6 +159,9 @@
"unique-id": {
"const": "api-gateway-idp"
},
"description": {
"const": "Validate bearer token"
},
"relationship-type": {
"const": {
"connects": {
Expand All @@ -179,6 +185,9 @@
"unique-id": {
"const": "api-gateway-api-producer"
},
"description": {
"const": "Forward request"
},
"relationship-type": {
"const": {
"connects": {
Expand All @@ -198,7 +207,33 @@
"const": "HTTPS"
}
}
}
},
{
"$ref": "https://raw.githubusercontent.com/finos/architecture-as-code/main/calm/draft/2024-04/meta/core.json#/defs/relationship",
"properties": {
"unique-id": {
"const": "api-consumer-idp"
},
"description": {
"const": "Acquire a bearer token"
},
"relationship-type": {
"const": {
"connects": {
"source": {
"node": "api-consumer"
},
"destination": {
"node": "idp"
}
}
}
},
"protocol": {
"const": "HTTPS"
}
}
}
]
}
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,91 +1,117 @@
{
"$schema": "https://raw.githubusercontent.com/finos/architecture-as-code/main/calm/pattern/api-gateway.json",
"nodes": [
{
"well-known-endpoint": "https://identity-provider.com/.well-known/openid-configuration",
"unique-id": "api-gateway",
"node-type": "system",
"name": "API Gateway",
"description": "The API Gateway used to verify authorization and access to downstream system",
"node-type": "system",
"unique-id": "api-gateway",
"interfaces": [
{
"unique-id": "api-gateway-ingress",
"host": "https://api-gateway-ingress.example.com",
"port": 443
"host": "mygateway.com",
"port": 6000
}
]
],
"well-known-endpoint": "/api"
},
{
"unique-id": "api-consumer",
"node-type": "system",
"name": "Python Based API Consumer",
"description": "The API Consumer making an authenticated and authorized request"
"name": "API Consumer",
"description": "The API Consumer making an authenticated and authorized request",
"interfaces": []
},
{
"unique-id": "api-producer",
"node-type": "system",
"name": "API Producer",
"description": "The API Producer serving content",
"interfaces": [
{
"unique-id": "producer-ingress",
"host": "https://api-producer.example.com",
"port": 443
"host": "producer.com",
"port": 3000
}
],
"node-type": "system",
"name": "Java Based API Producer",
"description": "The API Producer serving content",
"unique-id": "api-producer"
]
},
{
"unique-id": "idp",
"node-type": "system",
"name": "Identity Provider",
"description": "The Identity Provider used to verify the bearer token"
"description": "The Identity Provider used to verify the bearer token",
"interfaces": []
}
],
"relationships": [
{
"unique-id": "api-consumer-api-gateway",
"description": "Issue calculation request",
"relationship-type": {
"connects": {
"source": {
"node": "api-consumer"
},
"destination": {
"node": "api-gateway",
"interfaces": [
"api-gateway-ingress"
]
},
"source": {
"node": "api-consumer"
}
}
}
},
"protocol": "HTTPS",
"authentication": "OAuth2"
},
{
"unique-id": "api-gateway-idp",
"description": "Validate bearer token",
"relationship-type": {
"connects": {
"destination": {
"node": "idp"
},
"source": {
"node": "api-gateway"
},
"destination": {
"node": "idp"
}
}
}
},
"protocol": "HTTPS",
"authentication": "OAuth2"
},
{
"unique-id": "api-gateway-api-producer",
"description": "Forward request",
"relationship-type": {
"connects": {
"source": {
"node": "api-gateway"
},
"destination": {
"node": "api-producer",
"interfaces": [
"producer-ingress"
]
},
}
}
},
"protocol": "HTTPS",
"authentication": "OAuth2"
},
{
"unique-id": "api-consumer-idp",
"description": "Acquire a bearer token",
"relationship-type": {
"connects": {
"source": {
"node": "api-gateway"
"node": "api-consumer"
},
"destination": {
"node": "idp"
}
}
}
},
"protocol": "HTTPS",
"authentication": "OAuth2"
}
]
}
Binary file added calm/samples/visualization.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 11 additions & 17 deletions cli/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@finos/calm-cli",
"version": "0.1.2",
"version": "0.1.4",
"description": "A set of tools for interacting with the Common Architecture Language Model (CALM)",
"main": "dist/index.js",
"files": [
Expand Down
Loading

0 comments on commit 9aded71

Please sign in to comment.