This commit is contained in:
Tiara Rodney 2026-02-05 14:47:26 +01:00
parent 344e9eeb0e
commit 6120b71aca
No known key found for this signature in database
GPG key ID: 5CD8EC1D46106723
6 changed files with 565 additions and 18 deletions

21
profiles/README.md Normal file
View file

@ -0,0 +1,21 @@
# Profiles
Profiles define how the ABC Pattern maps onto specific IaC tools. Each profile
introduces additional rules, conventions, and examples tailored to the target
system.
Profiles use identifiers of the form:
```default
ABC-PROFILE-<PROFILE>-R#
```
Current profiles include:
* imperative, objectoriented implementations
* declarative modulebased implementation
Profiles demonstrate that ABC is not tied to any particular paradigm.
* [CDK TypeScript Profile](cdk-ts.md)
* [Terraform Profile](tf.md)

View file

@ -112,7 +112,7 @@ Application Stack.
### Core Types
```javascript
```typescript
export interface InputContract {}
export interface OutputContract {}
@ -123,7 +123,7 @@ export interface HasOutputs<TOutputs extends OutputContract> {
### Application Stack Base
```javascript
```typescript
import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import { OutputContract } from './core-types';
@ -141,7 +141,7 @@ export abstract class ABCApplicationStack<
### Logical Unit Base
```javascript
```typescript
import { Construct } from 'constructs';
import { InputContract, OutputContract, HasOutputs } from './core-types';
@ -161,7 +161,7 @@ export abstract class ABCLogicalUnit<
### Resource Group Base
```javascript
```typescript
import { Construct } from 'constructs';
import { InputContract, OutputContract, HasOutputs } from './core-types';
@ -191,7 +191,7 @@ src/data/storage/index.ts
src/data/database/index.ts
```
```javascript
```typescript
import { Construct } from 'constructs';
import { ABCLogicalUnit } from '../abc/logical-unit';
import { StorageGroup } from './storage';
@ -316,7 +316,7 @@ WebApp Resource Group and CDN Resource Group follow the same pattern.
## Application Stack
```javascript
```typescript
import { Construct } from 'constructs';
import { ABCApplicationStack } from './abc/application-stack';
import { DataUnit } from './data';