diff --git a/document/default/sequence/md_sequence.json b/document/default/md_sequence.json similarity index 100% rename from document/default/sequence/md_sequence.json rename to document/default/md_sequence.json diff --git a/document/default/sequence/mermaid_sequence.json b/document/default/mermaid_sequence.json similarity index 100% rename from document/default/sequence/mermaid_sequence.json rename to document/default/mermaid_sequence.json diff --git a/document/localhost/md_sequence.json b/document/localhost/md_sequence.json new file mode 100644 index 0000000..4938907 --- /dev/null +++ b/document/localhost/md_sequence.json @@ -0,0 +1,20 @@ +{ + "name": "sd01", + "guide": "{{.SelfFolder}}/sd01.md", + "description": "Markdown sequence template with embedded mermaid", + "templates": [ + { + "engine": "", + "folder": "{{.SelfFolder}}/definitions/{{.TemplateName}}", + "file_name": "sd01.md.tmpl", + "output_folder": "^/docs", + "output_name": "seqdgm01.md", + "section": "", + "model": { + "activity": { + "category": "OTHER" + } + } + } + ] +} \ No newline at end of file diff --git a/document/localhost/mermaid_sequence.json b/document/localhost/mermaid_sequence.json new file mode 100644 index 0000000..dadd512 --- /dev/null +++ b/document/localhost/mermaid_sequence.json @@ -0,0 +1,20 @@ +{ + "name": "sd02", + "guide": "{{.SelfFolder}}/sd02.md", + "description": "Mermaid sequence template", + "templates": [ + { + "engine": "", + "folder": "{{.SelfFolder}}/definitions/{{.TemplateName}}", + "file_name": "sd02.mermaid.tmpl", + "output_folder": "^/docs", + "output_name": "seqdgm02.mermaid", + "section": "", + "model": { + "activity": { + "category": "OTHER" + } + } + } + ] +} \ No newline at end of file diff --git a/document/localhost/sequence/definitions/sd01/sd01.md.tmpl b/document/localhost/sequence/definitions/sd01/sd01.md.tmpl new file mode 100644 index 0000000..5784ed2 --- /dev/null +++ b/document/localhost/sequence/definitions/sd01/sd01.md.tmpl @@ -0,0 +1,52 @@ +# Sequence diagram + +This represents the sequence diagram for +service names {{ range .ServiceNames}}**{{.}}** {{ end }} + +```mermaid +sequenceDiagram + + participant consumer as Consumer + participant gateway as Gateway + participant microservice as ServiceName + participant feature as Svc Feature + participant authz as Authorisation + participant log as Logger +{{ range .Apis}}participant {{ .Name }} as Svc{{ .Name }} +{{ end }} + + consumer->>+gateway: {{.ServicePoints}} + activate consumer + + note right of gateway: Authentication check at GW + gateway->>+microservice: {{.ServicePoints}} + + microservice->>+authz: Validate requestor + note right of authz: Authorise to function + authz-->>-microservice: 200 or 401/403 status + + microservice->>+feature: Check feature switch + feature-->>-microservice: 200 or 401/403 status + + microservice-)log: log request/response + {{ range .Apis}} + microservice-->>+{{ .Name }}: link {{ .Url }} + note right of {{ .Name }}: Explanation of what happens + {{ .Name }}-->>-microservice: 200 OK response + {{ end }} + + alt 200 OK + microservice-->>gateway: 200 OK response + gateway-->>consumer: 200 OK response + else not OK, error + microservice-->>-gateway: !200 ERR response + gateway-->>-consumer: !200 ERR response + end + deactivate consumer + +``` + +***Note***: Adjust the default sequence diagram above + +Copyright {{.QaskxDot.ServiceOwner}} +Contact {{.QaskxDot.ServiceOwnerEmail}} diff --git a/document/localhost/sequence/definitions/sd01/sd01.mermaid.tmpl b/document/localhost/sequence/definitions/sd01/sd01.mermaid.tmpl new file mode 100644 index 0000000..4f37da5 --- /dev/null +++ b/document/localhost/sequence/definitions/sd01/sd01.mermaid.tmpl @@ -0,0 +1,39 @@ + +%% Service name {{.ServicePoints}} +{{ range .Apis}} + +%% Sequence diagram for {{ .ServiceId }} as Svc {{ .Name }} +sequenceDiagram + + participant consumer as Consumer + participant gateway as Gateway + participant microservice as {{$.ServiceNames}} + {{ range $.Depends}} + participant {{ .ServiceId }} as Svc {{ .Name }}{{ end }} + + consumer->>+gateway: {{$.ServicePoints}} + + note right of gateway: Authentication check at GW + gateway->>+microservice: {{$.ServicePoints}} + + microservice->>+authz: Validate requestor + note right of authz: Authorise to function + authz-->>-microservice: 200 or 401/403 status + + microservice->>+feature: Check feature switch + feature-->>-microservice: 200 or 401/403 status + + microservice->>log: log request/response + + microservice-->>+{{ .ServiceId }}: link {{ .Url }} + note right of {{ .ServiceId }}: Explanation of what happens + {{ .ServiceId }}-->>-microservice: 200 OK response + + alt 200 OK + microservice-->>gateway: 200 OK response + gateway-->>-consumer: 200 OK response + else not OK, error + microservice-->>-gateway: !200 ERR response + gateway-->>-consumer: !200 ERR response + end +{{ end }} diff --git a/document/localhost/sequence/definitions/sd02/sd02.mermaid.tmpl b/document/localhost/sequence/definitions/sd02/sd02.mermaid.tmpl new file mode 100644 index 0000000..66e2c41 --- /dev/null +++ b/document/localhost/sequence/definitions/sd02/sd02.mermaid.tmpl @@ -0,0 +1,52 @@ + +%% {{.ServiceName}} service sequence +sequenceDiagram + + participant consumer as Consumer + participant gateway as Gateway +{{ range .Apis}}participant {{ .ServiceId }} as {{.Name}} +{{ end }} +{{ range .Depends}}participant {{ .ServiceId }} as Svc {{ .Name }} +{{ end }} + +{{ range .Apis}} + rect rgb(191, 223, 255) + consumer->>+gateway: {{$.ServicePoints}} + + note right of gateway: Authentication check at GW + gateway->>+authz: Validate requestor + authz-->>-gateway: 200 or 401/403 status + + gateway->>+{{ .ServiceId }}: start + {{ .ServiceId }}->>+authz: Fine grained authz + note right of authz: Authorise to function, data + authz-->>-{{ .ServiceId }}: 200 or 401/403 status + + {{ .ServiceId }}->>+featureflag: Check feature switch + featureflag-->>-{{ .ServiceId }}: 200 or 401/403 status + + {{ .ServiceId }}->>logger: log request/response + + {{ .ServiceId }}->>{{ .ServiceId }}: business logic + note right of {{ .ServiceId }}: Explanation of what happens + + {{with $microservice := .ServiceId }} + {{ range $.Depends }}{{ $microservice }}->>+{{ .ServiceId }}: function call + {{ .ServiceId }}-->>- {{ $microservice }}: result, 200 or 4xx status + {{ end }} + {{ end }} + + {{ .ServiceId }}->>{{ .ServiceId }}: business logic + note right of {{ .ServiceId }}: Explanation of what happens + + alt 200 OK + {{ .ServiceId }}-->>-gateway: 200 OK response + gateway-->>-consumer: 200 OK response + else not OK, error + {{ .ServiceId }}-->>-gateway: !200 ERR response + gateway-->>-consumer: !200 ERR response + end + + end +{{ end }} + \ No newline at end of file