Skip to content

Commit

Permalink
Merge pull request finos#2 from rocketstack-matt/monorepo-setup
Browse files Browse the repository at this point in the history
Initial commit
  • Loading branch information
rocketstack-matt authored Dec 8, 2023
2 parents efbc2ff + ab59986 commit 2ef128c
Show file tree
Hide file tree
Showing 6 changed files with 637 additions and 36 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ docs/contributing.md

# We use YARN
website/package-lock.json
/.idea/
50 changes: 14 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,29 @@
![badge-labs](https://user-images.githubusercontent.com/327285/230928932-7c75f8ed-e57b-41db-9fb7-a292a13a1e58.svg)

# architecture-as-code
# Architecture as Code

Short blurb about what your project does.
"Architecture as Code" (AasC) aims to devise and manage software architecture via a readable and version-controlled
codebase, fostering a robust understanding, efficient development, and seamless maintenance of complex software
architectures.

## Installation
This repository contains the AasC manifest specification, as well as capabilities being built to utilize the
specification. This page lists the domains and capabilities being built by the official AasC community.

OS X & Linux:
Whilst others are welcome to build their own capabilities, away from the AasC monorepo, we encourage you to join the
community and contribute your projects to the AasC monorepo which has the benefits of being visible to the whole
community; thereby attracting contributions and ensuring that changes to the manifest will be proactively built against
your project.

```sh
npm install my-crazy-module --save
```
## Projects

Windows:

```sh
edit autoexec.bat
```

## Usage example

A few motivating and useful examples of how your project can be used. Spice this up with code blocks and potentially screenshots / videos ([LiceCap](https://www.cockos.com/licecap/) is great for this kind of thing).

_For more examples and usage, please refer to the [Wiki][wiki]._

## Development setup

Describe how to install all development dependencies and how to run an automated test-suite of some kind. Potentially do this for multiple platforms.

```sh
make install
npm test
```

## Roadmap

List the roadmap steps; alternatively link the Confluence Wiki page where the project roadmap is published.

1. Item 1
2. Item 2
3. ....
* [AasC Manifest Specification](./manifest/README.md)

## Contributing

1. Fork it (<https://github.com/finos/architecture-as-code/fork>)
2. Create your feature branch (`git checkout -b feature/fooBar`)
3. Read our [contribution guidelines](.github/CONTRIBUTING.md) and [Community Code of Conduct](https://www.finos.org/code-of-conduct)
3. Read our [contribution guidelines](.github/CONTRIBUTING.md)
and [Community Code of Conduct](https://www.finos.org/code-of-conduct)
4. Commit your changes (`git commit -am 'Add some fooBar'`)
5. Push to the branch (`git push origin feature/fooBar`)
6. Create a new Pull Request
Expand Down
8 changes: 8 additions & 0 deletions manifest/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# The Architecture as Code Specification

The Architecture as Code Specification (AasC) 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 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/).

269 changes: 269 additions & 0 deletions manifest/samples/sample-manifest-01.aasc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,269 @@
{
"nodes": [
{
"uniqueId": "traderx-system",
"type": "system",
"name": "TraderX",
"description": "Simple Trading System"
},
{
"uniqueId": "traderx-trader",
"type": "actor",
"name": "Trader",
"description": "Person who manages accounts and executes trades"
},
{
"uniqueId": "web-client",
"type": "webclient",
"name": "Web Client",
"description": "Browser based web interface for TraderX",
"data-classification": "Confidential",
"run-as": "user"
},
{
"uniqueId": "web-gui-process",
"type": "service",
"name": "Web GUI",
"description": "Backend service for the Web Client",
"data-classification": "Confidential",
"run-as": "systemId"
},
{
"uniqueId": "position-service",
"type": "service",
"name": "Position Service",
"description": "Server process which processes trading activity and updates positions",
"data-classification": "Confidential",
"run-as": "systemId"
},
{
"uniqueId": "traderx-db",
"type": "database",
"name": "TraderX DB",
"description": "Database which stores account, trade and position state",
"data-classification": "Confidential",
"run-as": "systemId"
},
{
"uniqueId": "internal-bank-network",
"type": "internal-network",
"name": "Bank ABC Internal Network",
"description": "Internal network for Bank ABC",
"instance": "Internal Network"
},
{
"uniqueId": "reference-data-service",
"type": "service",
"name": "Reference Data Service",
"description": "Service which provides reference data",
"data-classification": "Confidential",
"run-as": "systemId"
},
{
"uniqueId": "trading-services",
"type": "service",
"name": "Trading Services",
"description": "Service which provides trading services",
"data-classification": "Confidential",
"run-as": "systemId"
},
{
"uniqueId": "trade-feed",
"type": "service",
"name": "Trade Feed",
"description": "Message bus for streaming updates to trades and positions",
"data-classification": "Confidential",
"run-as": "systemId"
},
{
"uniqueId": "trade-processor",
"type": "service",
"name": "Trade Processor",
"description": "Process incoming trade requests, settle and persist",
"data-classification": "Confidential",
"run-as": "systemId"
},
{
"uniqueId": "accounts-service",
"type": "service",
"name": "Accounts Service",
"description": "Service which provides account management",
"data-classification": "Confidential",
"run-as": "systemId"
},
{
"uniqueId": "people-service",
"type": "service",
"name": "People Service",
"description": "Service which provides user details management",
"data-classification": "Confidential",
"run-as": "systemId"
},
{
"uniqueId": "user-directory",
"type": "ldap",
"name": "User Directory",
"description": "Golden source of user data",
"data-classification": "PII",
"run-as": "systemId"
}
],
"relationships": [
{
"uniqueId": "trader-uses-web-client",
"type": "interacts",
"parties": {
"actor": "traderx-trader",
"nodes": [
"web-client"
]
}
},
{
"uniqueId": "web-client-uses-web-gui",
"type": "connects",
"parties": {
"source": "web-client",
"destination": "web-gui-process"
},
"protocol": "HTTPS",
"authentication": "SiteMinder/Isolated"
},
{
"uniqueId": "web-gui-uses-position-service",
"type": "connects",
"parties": {
"source": "web-gui-process",
"destination": "position-service"
},
"protocol": "HTTPS",
"authentication": "SPNEGO"
},
{
"uniqueId": "position-service-uses-traderx-db",
"type": "connects",
"parties": {
"source": "position-service",
"destination": "traderx-db"
},
"protocol": "JDBC",
"authentication": "Kerberos"
},
{
"uniqueId": "traderx-system-is-deployed-in-internal-bank-network",
"type": "deployed-in",
"parties": {
"nodes": [
"traderx-system"
],
"container": "internal-bank-network"
}
},
{
"uniqueId": "traderx-system-is-composed-of",
"type": "composed-of",
"parties": {
"nodes": [
"web-client",
"web-gui-process",
"position-service",
"traderx-db"
],
"container": "traderx-system"
}
},
{
"uniqueId": "traderx-system-components-are-deployed-in-internal-bank-network",
"type": "deployed-in",
"parties": {
"nodes": [
"web-client",
"web-gui-process",
"position-service",
"traderx-db"
],
"container": "internal-bank-network"
}
},
{
"uniqueId": "webgui-process-uses-reference-data-service",
"type": "connects",
"parties": {
"source": "web-gui-process",
"destination": "reference-data-service"
},
"protocol": "HTTPS",
"authentication": "SPNEGO"
},
{
"uniqueId": "webgui-process-uses-trading-services",
"type": "connects",
"parties": {
"source": "web-gui-process",
"destination": "trading-services"
},
"protocol": "HTTPS",
"authentication": "SPNEGO"
},
{
"uniqueId": "webgui-process-uses-trade-feed",
"type": "connects",
"parties": {
"source": "web-gui-process",
"destination": "trade-feed"
},
"protocol": "WebSocket",
"authentication": "Kerberos"
},
{
"uniqueId": "trade-feed-connects-to-trade-processor",
"type": "connects",
"parties": {
"source": "trade-feed",
"destination": "trade-processor"
},
"protocol": "AMQP",
"authentication": "Kerberos"
},
{
"uniqueId": "trade-processor-connects-to-traderx-db",
"type": "connects",
"parties": {
"source": "trade-processor",
"destination": "traderx-db"
},
"protocol": "JDBC",
"authentication": "Kerberos"
},
{
"uniqueId": "webgui-process-uses-accounts-service",
"type": "connects",
"parties": {
"source": "web-gui-process",
"destination": "accounts-service"
},
"protocol": "HTTPS",
"authentication": "SPNEGO"
},
{
"uniqueId": "webgui-process-uses-people-service",
"type": "connects",
"parties": {
"source": "web-gui-process",
"destination": "people-service"
},
"protocol": "HTTPS",
"authentication": "SPNEGO"
},
{
"uniqueId": "people-service-connects-to-user-directory",
"type": "connects",
"parties": {
"source": "people-service",
"destination": "user-directory"
},
"protocol": "LDAP",
"authentication": "Kerberos"
}
]
}
Loading

0 comments on commit 2ef128c

Please sign in to comment.