parent
f54173e46d
commit
b002754c06
|
|
@ -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}}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"name": "errm01",
|
||||||
|
"guide": "{{.SelfFolder}}/errm01.md",
|
||||||
|
"description": "Default error model",
|
||||||
|
"templates": [
|
||||||
|
{
|
||||||
|
"engine": "",
|
||||||
|
"folder": "{{.SelfFolder}}/definitions/{{.TemplateName}}",
|
||||||
|
"file_name": "error-model.tmpl",
|
||||||
|
"output_folder": "^/docsxxx",
|
||||||
|
"output_name": "seqdgm01.md",
|
||||||
|
"section": "",
|
||||||
|
"model": {
|
||||||
|
"activity": {
|
||||||
|
"category": "OTHER"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -91,13 +91,16 @@
|
||||||
{
|
{
|
||||||
"platform": "",
|
"platform": "",
|
||||||
"script": "",
|
"script": "",
|
||||||
"deploy": {
|
"activity": {
|
||||||
|
"id": "CHANGE.ME",
|
||||||
"category": "DEPLOY",
|
"category": "DEPLOY",
|
||||||
"name": "rpm",
|
"name": "rpm",
|
||||||
"url": ""
|
"url": ""
|
||||||
},
|
},
|
||||||
"guide": "",
|
"guide": "",
|
||||||
"playbook": ""
|
"name": "CHANGE.ME",
|
||||||
|
"pre": "",
|
||||||
|
"post": ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"devops_version": "0.0.1",
|
"devops_version": "0.0.1",
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
param (
|
param (
|
||||||
[string] $OpenAPI = "*rediops"
|
[string] $OpenAPI = "*rediops",
|
||||||
|
[bool] $NoCache
|
||||||
)
|
)
|
||||||
|
|
||||||
$startCd = Get-Location
|
$startCd = Get-Location
|
||||||
|
|
||||||
$prjDir = qaskx-cli tools dir
|
$prjDir = qaskx-cli tools dir ^/
|
||||||
|
|
||||||
if ($prjDir -eq "") {
|
if ($prjDir -eq "") {
|
||||||
Throw "No home project directory found"
|
Throw "No home project directory found"
|
||||||
|
|
@ -45,29 +46,65 @@ if ($OpenAPI -eq "*rediops") {
|
||||||
foreach ($api in $list) {
|
foreach ($api in $list) {
|
||||||
$parts = $api -split "`t"
|
$parts = $api -split "`t"
|
||||||
|
|
||||||
if ($parts[3] -ne "" -and $parts[1] -eq "OpenAPI") {
|
if ($NoCache -ne $true -and $parts[3] -ne "") {
|
||||||
Write-Host "Generate from OpenAPI definition '$($parts[3])'" -ForegroundColor Yellow
|
if ($parts[3].StartsWith("https://") -or $parts[3].StartsWith("http://")) {
|
||||||
$OpenAPI = $parts[3]
|
# Note that file extension may not / unlikely be included
|
||||||
$configFile = Join-Path -Path $prjDir -ChildPath ".\build\types.cfg.yaml"
|
$fileName = $parts[0]
|
||||||
& $oapigenItem --config $configFile $OpenAPI
|
if ($fileName -eq "") {
|
||||||
if ($lastexitcode -ne 0) {
|
# Falback name, though this may fail with invalid name
|
||||||
Write-Host "`nAPI Types generation error" -ForegroundColor Red
|
$partsRemote = $parts[3] -split "/"
|
||||||
Set-Location $startCd
|
$fileName = $partsRemote[$partsRemote.Count-1]
|
||||||
Throw "API Types generation error detected"
|
}
|
||||||
}
|
|
||||||
Write-Host "API type code generated"
|
if ($fileName -ne "") {
|
||||||
|
$outPathFile = Join-Path -Path $prjDir -ChildPath ("build/cache/" + $fileName)
|
||||||
|
$null = Invoke-WebRequest -Uri $parts[3] -OutFile $outPathFile
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($parts[3] -ne "" -and $parts[1] -eq "OpenAPI") {
|
||||||
|
$apiName = $parts[0]
|
||||||
|
if ($apiName -eq "") {
|
||||||
|
$apiName = "OPENAPI"
|
||||||
|
}
|
||||||
|
Write-Host "Generate $apiName from OpenAPI definition '$($parts[3])'" -ForegroundColor Yellow
|
||||||
|
if ($parts[3].StartsWith("https://") -or $parts[3].StartsWith("http://")) {
|
||||||
|
$OpenAPI = $parts[3]
|
||||||
|
} else {
|
||||||
|
$OpenAPI = qaskx-cli tools dir $parts[3]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check for matching config file
|
||||||
|
$configFile = Join-Path -Path $prjDir -ChildPath ("build/"+ $parts[0] + "_types.cfg.yaml")
|
||||||
|
if ( (Test-Path $configFile -PathType Leaf) -eq $false) {
|
||||||
|
$configFile = Join-Path -Path $prjDir -ChildPath "build/types.cfg.yaml"
|
||||||
|
}
|
||||||
|
|
||||||
$configFile = Join-Path -Path $prjDir -ChildPath ".\build\server.cfg.yaml"
|
|
||||||
& $oapigenItem --config $configFile $OpenAPI
|
& $oapigenItem --config $configFile $OpenAPI
|
||||||
if ($lastexitcode -ne 0) {
|
if ($lastexitcode -ne 0) {
|
||||||
Write-Host "`nAPI Server generation error" -ForegroundColor Red
|
Write-Host "`n$apiName API Types generation error" -ForegroundColor Red
|
||||||
Set-Location $startCd
|
Set-Location $startCd
|
||||||
Throw "API Server generation error detected"
|
Throw "$apiName API Types generation error detected"
|
||||||
}
|
}
|
||||||
Write-Host "API server code generated"
|
Write-Host "$apiName API type code generated from $configFile"
|
||||||
|
|
||||||
|
# Check for matching config file
|
||||||
|
$configFile = Join-Path -Path $prjDir -ChildPath ("build/"+ $parts[0] + "_server.cfg.yaml")
|
||||||
|
if ( (Test-Path $configFile -PathType Leaf) -eq $false) {
|
||||||
|
$configFile = Join-Path -Path $prjDir -ChildPath "build/server.cfg.yaml"
|
||||||
|
}
|
||||||
|
|
||||||
|
& $oapigenItem --config $configFile $OpenAPI
|
||||||
|
if ($lastexitcode -ne 0) {
|
||||||
|
Write-Host "`n$apiName API Server generation error" -ForegroundColor Red
|
||||||
|
Set-Location $startCd
|
||||||
|
Throw "$apiName API Server generation error detected"
|
||||||
|
}
|
||||||
|
Write-Host "$apiName API server code generated from $configFile"
|
||||||
|
|
||||||
$processed = $true
|
$processed = $true
|
||||||
break
|
#break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -97,5 +134,8 @@ if ($OpenAPI -eq "*rediops") {
|
||||||
Write-Host "API server code generated"
|
Write-Host "API server code generated"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Set-Location $prjDir
|
||||||
|
go mod tidy
|
||||||
|
|
||||||
Set-Location $startCd
|
Set-Location $startCd
|
||||||
Write-Host "Generation complete. Please check logs." -ForegroundColor Yellow
|
Write-Host "Generation complete. Please check logs." -ForegroundColor Yellow
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue