Skip to content

Commit b013fa5

Browse files
committed
chore: merge fix
Signed-off-by: Mats Johansson <extern.mats.johansson@digg.se>
1 parent 32dc80b commit b013fa5

28 files changed

+1368
-464
lines changed

.conform.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@ policies:
1919
conventional:
2020
types: ['chore', 'build', 'docs', 'ci', 'perf', 'refactor', 'style', 'test', 'release']
2121
scopes: ['.*']
22+
descriptionLength: 92

.github/workflows/publish-image.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,29 @@ jobs:
1919

2020
steps:
2121
- name: Checkout repo
22-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
22+
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
2323

2424
- name: Set up QEMU
25-
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3
25+
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
2626

2727
- name: Set up Docker Buildx
2828
id: buildx
29-
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
29+
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
3030

3131
- name: Inspect builder
3232
run: |
3333
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
3434
3535
- name: Log in to the Container registry
36-
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
36+
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
3737
with:
3838
registry: ${{ env.REGISTRY }}
3939
username: ${{ github.actor }}
4040
password: ${{ secrets.GITHUB_TOKEN }}
4141

4242
- name: Extract metadata (tags, labels) for distribution image
4343
id: metadist
44-
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
44+
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
4545
with:
4646
images: ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}
4747
flavor: |
@@ -53,7 +53,7 @@ jobs:
5353
type=raw,value=${{ env.IMAGE_NAME }}-{{tag}}-{{date 'YYYYMMDD'}}-{{sha}},priority=32, enable=${{ startsWith(github.ref, 'refs/tags/v') }}
5454
5555
- name: Build and push distribution image
56-
uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5
56+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
5757
with:
5858
context: .
5959
file: Containerfile

.github/workflows/publish-package.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ jobs:
1313
packages: write
1414

1515
steps:
16-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
16+
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
1717

1818
# Setup .npmrc file to publish to GitHub Packages
19-
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
19+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
2020
with:
2121
node-version: "22.x"
2222
registry-url: "https://npm.pkg.github.com"

.github/workflows/test.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ jobs:
1212
runs-on: ubuntu-latest
1313
steps:
1414
- name: Checkout code
15-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
15+
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
1616

1717
- name: Set up Node.js
18-
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
18+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
1919
with:
2020
node-version: "22.15.0"
2121

.prettierrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
"printWidth": 120,
77
"htmlWhitespaceSensitivity": "ignore",
88
"bracketSameLine": false,
9-
"vueIndentScriptAndStyle": true
9+
"vueIndentScriptAndStyle": true,
10+
"trailingComma": "all"
1011
}
11-

GUIDELINES.md

Lines changed: 149 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ Detta dokument specificerar reglerna som verktyget tillämpar.
3232
1. [Område: Dokumentation](#område-dokumentation)
3333
- [ID: DOK.01](#id-dok01)
3434
- [ID: DOK.03](#id-dok03)
35+
- [ID: DOK.06](#id-dok06)
3536
- [ID: DOK.07](#id-dok07)
37+
- [ID: DOK.08](#id-dok08)
38+
- [ID: DOK.09](#id-dok09)
3639
- [ID: DOK.15](#id-dok15)
3740
- [ID: DOK.17](#id-dok17)
3841
- [ID: DOK.19](#id-dok19)
@@ -75,16 +78,18 @@ Detta dokument specificerar reglerna som verktyget tillämpar.
7578
- [ID: FNS.08](#id-fns08)
7679
- [ID: FNS.09](#id-fns09)
7780
10. [Område: Säkerhet](#område-säkerhet)
81+
- [ID: SAK.01](#id-sak01)
7882
- [ID: SAK.09](#id-sak09)
7983
- [ID: SAK.10](#id-sak10)
8084
- [ID: SAK.15](#id-sak15)
85+
- [ID: SAK.16](#id-sak16)
8186
- [ID: SAK.18](#id-sak18)
8287
11. [Område: Förutsättningar](#område-förutsättningar)
8388
- [ID: FOR.02](#id-for02)
8489

8590
## Område: Dokumentation
8691

87-
**Täckningsgrad: 29%**
92+
**Täckningsgrad: 33%**
8893

8994
### ID: DOK.01
9095

@@ -147,6 +152,38 @@ Regeln förutsätter att det finns en förekomst av objektet `info` med underlig
147152

148153
---
149154

155+
### ID: DOK.06
156+
157+
**Krav:** Dokumentationen BÖR finnas på både svenska och engelska.
158+
159+
**Typ:** BÖR
160+
161+
**JSON Path Plus-uttryck:**
162+
163+
```
164+
$.info.description
165+
```
166+
167+
**Förklaring:**
168+
Regeln förutsätter att det finns en förekomst av objektet `info` med underliggande struktur:
169+
170+
- info
171+
- description
172+
173+
`description` förväntas dessutom innehålla dokumentation på både svenska och engelska. Detta görs i nuläget genom att försöka matcha enskilda ord mot de som finns i [ordlistorna.](rulesets/constants/CommonWords.ts)
174+
175+
**Exempel:**
176+
177+
![Exempelbild som visar att pipesymbolen kan användas för att skriva beskrivningen över flera rader i en OpenAPI Description](images/dok6-1.png)
178+
179+
_Pipesymbolen kan med fördel användas när beskrivningen sträcker sig över flera rader eller stycken._
180+
181+
![Exempelbild som visar att större än-tecknet kan använndas för att skriva beskrivningen över flera rader i en OpenAPI Description](images/dok6-2.png)
182+
183+
_Större än-tecknet kan också användas när beskrivningen sträcker sig över flera rader eller stycken._
184+
185+
---
186+
150187
### ID: DOK.07
151188

152189
**Krav:** Dokumentationen av ett API BÖR innehålla övergripande information om API:et.
@@ -171,6 +208,66 @@ Regeln förutsätter att det finns en förekomst av objektet `info` med underlig
171208

172209
---
173210

211+
### ID: DOK.08
212+
213+
**Krav:** Ett API:s servicenivå SKALL finnas tydligt beskriven i dokumentationen.
214+
215+
**Typ:** SKALL
216+
217+
**JSON Path Plus-uttryck:**
218+
219+
```
220+
$
221+
```
222+
223+
**Förklaring:**
224+
Regeln förutsätter att det finns en förekomst av minst ett av objekten `info.termsOfService`, `info.x-sla` eller `externalDocs` med följande strukturer:
225+
226+
- info
227+
228+
- termsOfService
229+
- x-sla
230+
- availability
231+
- responseTime
232+
- support
233+
234+
- externalDocs
235+
- description
236+
- url
237+
238+
`externalDocs.description` måste innehålla texten "service level agreement" eller "SLA", och `externalDocs.url` måste vara en giltig URL.
239+
240+
**Exempel:**
241+
242+
![Exempelbild på ovan nämnda objekts placering i en OpenAPI Description](images/dok8.png)
243+
244+
_Ett av objekten räcker för att uppfylla regeln._
245+
246+
---
247+
248+
### ID: DOK.09
249+
250+
**Krav:** Kända problem och begränsningar SKALL finnas tydlig beskrivna i dokumentationen.
251+
252+
**Typ:** SKALL
253+
254+
**JSON Path Plus-uttryck:**
255+
256+
```
257+
$
258+
```
259+
260+
**Förklaring:**
261+
Regeln förutsätter att det finns en förekomst av något av objekten `info.description` och `externalDocs.description`, och att de innehåller någon av strängarna "limit", "begränsning" eller "problem". Alternativt så räcker det om det finns en förekomst av `info.x-limitations`.
262+
263+
**Exempel:**
264+
265+
![Exempelbild på ovan nämnda objekts placering i en OpenAPI Description](images/dok9.png)
266+
267+
_Ett av objekten räcker för att uppfylla regeln, men "limit", "begränsning" eller "problem" behöver nämnas i `description`-fälten för att de ska räknas._
268+
269+
---
270+
174271
### ID: DOK.15
175272

176273
**Krav:** I dokumentationen av API:et SKALL exempel på API:ets fråga (en:request) och svar (en:reply) finnas i sin helhet.
@@ -359,9 +456,9 @@ Regeln kontrollerar att parametrar av typerna query och path inte använder föl
359456

360457
**Exempel:**
361458

362-
![Exempelbild på en resurs vars query-parameter använder ett ogiltigt namn](images/res02.png)
459+
![Exempelbild på hur parametrar anges på ett korrekt sätt i en OpenAPI Description](images/res02.png)
363460

364-
_Query-parametern använder ett ogiltigt namn._
461+
_Exemplet ovan är giltigt då namnet på parametern inte är ett av ovanstående._
365462

366463
---
367464

@@ -1008,7 +1105,30 @@ I exemplet ovan, så exemplifieras regeln med en kontroll av de query parametrar
10081105

10091106
## Område: Säkerhet
10101107

1011-
**Täckningsgrad: 11%**
1108+
**Täckningsgrad: 16%**
1109+
1110+
### ID: SAK.01
1111+
1112+
**Krav:** All transport SKALL ske över HTTPS med minst TLS 1.2.
1113+
1114+
**Typ:** SKALL
1115+
1116+
**JSON Path Plus-uttryck:**
1117+
1118+
```
1119+
$.servers
1120+
```
1121+
1122+
**Förklaring:**
1123+
Regeln förutsätter att varje server har en giltig url specifierad och använder HTTPS-protokollet.
1124+
1125+
**Exempel:**
1126+
1127+
![Exempelbild på hur servrar anges på ett korrekt sätt i en OpenAPI Description](images/sak01.png)
1128+
1129+
_Exemplet ovan är giltigt då samtliga servrar innehåller en giltig `url` och använder HTTPS._
1130+
1131+
---
10121132

10131133
### ID: SAK.09
10141134

@@ -1079,6 +1199,31 @@ I exemplet ovan ger regeln ett negativt utfall, eftersom det definierade säkerh
10791199

10801200
---
10811201

1202+
---
1203+
1204+
### ID: SAK.16
1205+
1206+
**Krav:** API-nycklar SKALL inkluderas i HTTP-headern eftersom querysträngar kan sparas av klienten eller servern i okrypterat format av webbläsaren eller serverapplikationen.
1207+
1208+
**Typ:** SKALL
1209+
1210+
**JSON Path Plus-uttryck:**
1211+
1212+
```
1213+
$.components.securitySchemes[?(@ && @.type=='apiKey')]
1214+
```
1215+
1216+
**Förklaring:**
1217+
Regeln kontrollerar, under förutsättning att ett security scheme är definierat, att om typen är 'apiKey', så får värdet för parametern 'in' endast vara satt till 'header'.
1218+
1219+
**Exempel:**
1220+
1221+
![alt text](images/sak16.png)
1222+
1223+
I exemplet ovan ger regeln ett positivt utfall, eftersom det definierade säkerhetsschemat 'ApiKeyQuery' har typen 'apiKey' och parametern 'in' är satt till 'header', vilket är i linje med regeln.
1224+
1225+
---
1226+
10821227
### ID: SAK.18
10831228

10841229
**Krav:** OAuth version 2.0 eller senare BÖR användas för auktorisation.

REUSE.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ path = [
3131
"images/dok19.png",
3232
"images/dok20.png",
3333
"images/dok3.png",
34+
"images/dok6-1.png",
35+
"images/dok6-2.png",
3436
"images/dok7.png",
37+
"images/dok8.png",
38+
"images/dok9.png",
3539
"images/dot1-2.png",
3640
"images/dot1.png",
3741
"images/dot4.png",
@@ -51,9 +55,11 @@ path = [
5155
"images/res06-1.png",
5256
"images/res06-2.png",
5357
"images/rest-api-profil.png",
58+
"images/sak01.png",
5459
"images/sak09.png",
5560
"images/sak10.png",
5661
"images/sak15.png",
62+
"images/sak16.png",
5763
"images/sak18.png",
5864
"images/ufn1-2.png",
5965
"images/ufn1.png",

apis/dok-api.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@ openapi: '3.0.0'
66
info:
77
version: 1.0.0
88
title: AME
9-
description: API message
9+
description: >
10+
När dokumentationen består av flera stycken kan också större än-tecknet användas.
11+
Då ersätts radbrytningar med mellanslag.
12+
Tomma rader bevaras däremot som styckeavgränsare.
13+
14+
When the documentation consists of multiple paragraphs, the greater-than operator can be used.
15+
This converts line breaks into spaces.
16+
However, empty lines are preserved as paragraph separators.
1017
termsOfService: http://swagger.io/terms/
1118
contact:
1219
name: Swagger API Team

apis/sak-api.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,11 @@ components:
120120
type: apiKey
121121
in: query
122122
name: api_key
123+
#Test for invalid types in security schemes
124+
ApiKeyQuery2:
125+
type: apiKey
126+
in: header
127+
name: api_key2
123128

124129

125130
schemas:

development/code_quality.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ store_exit_code() {
4848
lint_and_format() {
4949
export MEGALINTER_DEF_WORKSPACE='/repo'
5050
print_header 'LINTER HEALTH (MEGALINTER)'
51-
podman run --rm --volume "$(pwd)":/repo -e MEGALINTER_CONFIG='development/megalinter.yml' -e DEFAULT_WORKSPACE=${MEGALINTER_DEF_WORKSPACE} -e LOG_LEVEL=INFO ghcr.io/oxsecurity/megalinter-javascript:v8.7.0
51+
podman run --rm --volume "$(pwd)":/repo -e MEGALINTER_CONFIG='development/megalinter.yml' -e DEFAULT_WORKSPACE=${MEGALINTER_DEF_WORKSPACE} -e LOG_LEVEL=INFO ghcr.io/oxsecurity/megalinter-javascript:v8.8.0
5252
store_exit_code "$?" "Lint" "${MISSING} ${RED}Lint check failed, see logs (std out and/or ./megalinter-reports) and fix problems.${NC}\n" "${GREEN}${CHECKMARK}${CHECKMARK} Lint check passed${NC}\n"
5353
printf '\n\n'
5454
}
@@ -70,6 +70,13 @@ commit() {
7070
printf '\n\n'
7171
}
7272

73+
license() {
74+
print_header 'LICENSE HEALTH (REUSE)'
75+
podman run --rm --volume "$(pwd)":/data docker.io/fsfe/reuse:5.0.2-debian lint
76+
store_exit_code "$?" "License" "${MISSING} ${RED}License check failed, see logs and fix problems.${NC}\n" "${GREEN}${CHECKMARK}${CHECKMARK} License check passed${NC}\n"
77+
printf '\n\n'
78+
}
79+
7380
check_exit_codes() {
7481
printf '%b********* CODE QUALITY RUN SUMMARY ******%b\n\n' "${YELLOW}" "${NC}"
7582

@@ -98,5 +105,6 @@ is_command_available 'npm' 'https://nodejs.org/'
98105

99106
lint_and_format
100107
commit
108+
license
101109

102110
check_exit_codes

0 commit comments

Comments
 (0)