Skip to content

Commit 9995e1b

Browse files
docs: update documentation in readme, contributing and development
Signed-off-by: Nicklas Silversved <nicklas.silversved@digg.se>
1 parent b8271b8 commit 9995e1b

File tree

4 files changed

+229
-153
lines changed

4 files changed

+229
-153
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ För säkerhetssårbarheter, följ riktlinjerna i vår [Säkerhetsinformation](S
134134
- Var koncis och länka till externa resurser vid behov.
135135
- Följ [en-mening-per-rad](https://sembr.org/)-principen i Markdown eller AsciiDoc.
136136

137-
Svenska är det primära språket
137+
Svenska är det primära språket.
138138

139139
## FOSS-standarder
140140

README.md

Lines changed: 125 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -24,57 +24,130 @@ Verktyget är specifikt utvecklat för att linta OpenAPI-definitioner enligt den
2424

2525
- [REST API-profil - Lint Processor (RAP-LP)](#rest-api-profil---lint-processor-rap-lp)
2626
- [Innehållsförteckning](#innehållsförteckning)
27-
- [Installation och krav](#installation-och-krav)
2827
- [Instruktioner för att komma igång snabbt](#instruktioner-för-att-komma-igång-snabbt)
2928
- [Versioner](#versioner)
3029
- [Användning](#användning)
3130
- [Begränsningar](#begränsningar)
3231
- [Support](#support)
32+
- [FAQ](#faq)
3333
- [Bidra](#bidra)
3434
- [Utveckling](#utveckling)
3535
- [Licens](#licens)
3636
- [Underhållare](#underhållare)
3737
- [Krediter och referenser](#krediter-och-referenser)
3838

39-
## Installation och krav
39+
## Instruktioner för att komma igång snabbt
4040

41-
Det enklaste sättet att installera RAP-LP är genom att använda [npm](https://www.npmjs.com/):
41+
Förutsätter att det finns en `openapi.yaml` att validera i den aktuella katalogen och beroende på hur man önskar att nyttja verktyget måste det finns installerade versioner av `Node.js`,`npm`, `Podman` eller `Docker`.
42+
43+
### NPM
44+
> Notera: Att GitHub Packages (npm) kräver authentisering.<br>
45+
> Projektets `.npmrc` bör vara konfigurerat mot rätt registry - `@diggsweden:registry=https://npm.pkg.github.com`
4246
43-
1. Klona ned projektet från senaste release, gärna via latest release tag.
44-
2. Installera alla beroenden:
4547

4648
```bash
47-
npm install
49+
npm login --registry=https://npm.pkg.github.com
50+
# username: ditt GitHub-användarnamn
51+
# password: GitHub PAT med read:packages
4852
```
4953

50-
## Instruktioner för att komma igång snabbt
54+
> Om du saknar inloggning med GitHub Personal access token (PAT), se [FAQ](#hur-skapar-jag-ett-github-personal-access-token-pat).
55+
56+
#### Installera globalt med npm:
57+
```bash
58+
npm i -g @diggsweden/rest-api-profil-lint-processor@latest
59+
raplp -f openapi.yaml
60+
```
61+
62+
#### Installera lokalt som `npm run` script
63+
64+
Installera och lägg som `devDependencies`:
65+
66+
```
67+
npm i --save-dev @diggsweden/rest-api-profil-lint-processor@latest
68+
```
69+
70+
Lägg till ett [`npm run` script](https://docs.npmjs.com/cli/run-script) i din `package.json` med rätt sökväg till filen du vill validera:
5171

52-
Använd det här kommandot för att köra applikationen mot en YAML-fil:
72+
```json
73+
{
74+
"scripts": {
75+
"lint-processor": "raplp -f openapi.yaml"
76+
}
77+
}
78+
```
79+
80+
Nu kan du använda `npm run lint-processor`.
5381

82+
### NPX
83+
Kör utan installation och package.json:
5484
```bash
55-
npm start -- -f <PATH>/<YAML_FILE>
85+
npx @diggsweden/rest-api-profil-lint-processor@latest -f openapi.yaml
5686
```
5787

58-
**Exempel**
88+
### Podman
89+
Kör med podman:
90+
```bash
91+
podman run --rm -v $(pwd):/data ghcr.io/diggsweden/rest-api-profil-lint-processor:latest -f /data/openapi.yaml
92+
```
5993

94+
### Docker
95+
Kör med docker:
6096
```bash
61-
npm start -- -f apis/dok-api.yaml
97+
docker run --rm -v $(pwd):/data ghcr.io/diggsweden/rest-api-profil-lint-processor:latest -f /data/openapi.yaml
6298
```
99+
> Notera: Sökvägar kan hanteras olika beroende på miljö:
100+
> - Podman (Linux/macOS/WSL): -v $(pwd):/app/example
101+
> - Docker (PowerShell): -v "${PWD}:/app/example"
102+
> - Docker (CMD): -v %cd%:/app/example
63103
64-
## Versioner
65-
Senaste release tag ska alltid vara stabil och testad, vilket gör den till den föredragna versionen för att nyttja verktyget.
104+
### Bygga från källkod
105+
1. Klona ned projektet, gärna från senaste release tag.
106+
2. Installera alla beroenden:
66107

108+
```bash
109+
npm install
110+
npm start -- -f openapi.yaml
111+
```
112+
> Notera: Att alla kommandon lokalt körs med `npm start --`.
113+
114+
## Versioner
115+
Senaste release tag ska alltid vara stabil och testad, vilket gör den till den föredragna versionen för att nyttja verktyget.<br>
67116
Main och pre-releaser används med reservation för att all funktionalitet inte är garanterat stabil och testad.
68117

69118
## Användning
119+
Här beskrivs vilka användningsområden verktyget har med diverse flaggor som kan sättas för att nyttja verktygets funktionalitet.
120+
121+
### Tillgängliga flaggor
122+
123+
| Flagga | Beskrivning | Typ | Standard | Obligatorisk |
124+
|---|---|---|---|---|
125+
| `-f, --file` | Sökväg till OpenAPI-specifikation (YAML/JSON). | string || Ja |
126+
| `-c, --categories` | Regelkategorier separerade med kommatecken. Tillgängliga: `UfnRules, SakRules, VerRules, FnsRules, ArqRules, DokRules, AmeRules, ForRules, DotRules, FelRules`. | string || Nej |
127+
| `-l, --logError` | Sökväg till fil för felloggning från RAP-LP. Om inte angiven skrivs loggen till stdout. | string | stdout (om ej satt) | Nej |
128+
| `-a, --append` | Append—utökar loggen i befintlig felloggningsfil (om `--logError` används). | boolean | `false` | Nej |
129+
| `-d, --logDiagnostic` | Sökväg till fil för diagnostiseringsinformation från RAP-LP i JSON-format. | string || Nej |
130+
| `--dex` | Sökväg till fil för diagnostiseringsinformation från RAP-LP i Excel-format. | string || Nej |
70131

71-
För att validera mot en specifik kategori av regler, lägg till `-c <CategoryName>`.
132+
133+
> Notera: Att `raplp` i alla kommandon nedan ersätts med respektive miljös sätt att köra verktyget (npm, docker eller podman).
134+
135+
### Validering med alla regler
136+
För att validera en openapi-definition med verktyget, lägg till `-f <YAML_FILE>`
137+
```bash
138+
raplp -f openapi.yaml
139+
```
72140

73141
### Validering med utvalda regler
74-
**Exempel**
142+
För att validera mot en specifik kategori av regler, lägg till `-c <CategoryName>`.<br>
143+
>Notera: Att du kan lägga till flera regler som en kommaseparerad lista.
75144
76145
```bash
77-
npm start -- -f apis/dok-api.yaml -c DokRules
146+
# Validera mot en specifik regel
147+
raplp -f openapi.yaml -c DokRules
148+
149+
# Validera mot flera regler
150+
raplp -f openapi.yaml -c DokRules,AmeRules,SakRules
78151
```
79152

80153
#### Tillgängliga kategorier med regler
@@ -90,155 +163,58 @@ npm start -- -f apis/dok-api.yaml -c DokRules
90163
- UfnRules
91164
- VerRules
92165

93-
För att spara meddelanden från felloggar, lägg till `-l <FILE>`.
94-
95-
96-
### Validering som skriver resultat till en valfri logfil
97-
98-
**Exempel**
166+
### Validering som skriver felmeddelanden till en valfri loggfil
167+
För att skriva felmeddelanden till en valfri loggfil, lägg till `-l <FILE>`
99168
```bash
100-
npm start -- -f apis/dok-api.yaml -l rap-lp.log
169+
raplp -f openapi.yaml -l raplp.log
101170
```
171+
> Notera: Att varje körning skriver över den tidigare loggfilen.
102172
103-
104-
### Validering som skriver resultat till en valfri logfil samt loggar i terminalen
105-
För att lägga till loggning, lägg till `-a`
106-
107-
**Exempel**
173+
För att lägga till loggning i samma fil, lägg till `-a`
108174
```bash
109-
npm start -- -f apis/dok-api.yaml -l rap-lp.log -a
175+
raplp -f openapi.yaml -l raplp.log -a
110176
```
111177

112178
### Validering som sparar loggdiagnostik i en fil
113179
För att spara loggdiagnostik i en fil, lägg till `-d <FILE>`
114180

115-
**Exempel**
116-
117181
```bash
118-
npm start -- -f apis/dok-api.yaml -d logDiagnostic.log
182+
raplp -f openapi.yaml -d logDiagnostic.log
119183
```
120184

121185
### Validering som sparar information om regelutfall i en Excel-fil
122186

123-
För att spara information om regelutfall från diagnostiseringen till en avstämningsfil i Excel, lägg till --dex.
124-
187+
För att spara information om regelutfall från diagnostiseringen till en avstämningsfil i Excel, lägg till `--dex`.<br>
125188
Om en specifik sökväg till avstämningsfilen ska anges, kan denna läggas till.<br>
126189
Om ingen sökväg anges, genererar verktyget automatiskt en ny avstämningsfil i den katalog där det körs.
127190

128-
Avstämningsfilen i Excel har ett fast format, om en egen version av filen ska användas måste den utpekade resursen hämtas med en kompatibel version av REST API-profilen.
191+
[Avstämningsfilen](document/Avstaemning_REST_API_profil_v_1_2_0_0.xlsx) i Excel har ett fast format, om en egen version av filen ska användas måste den utpekade resursen hämtas med en kompatibel version av REST API-profilen.
129192

130193
**Exempel utan sökväg till avstämningsfil i Excel**
131194

132195
```bash
133-
npm start -- -f apis/dok-api.yaml --dex
196+
raplp -f openapi.yaml --dex
134197
```
135198

136199
**Exempel med sökväg till avstämningsfil i Excel**
137200

138201
```bash
139-
npm start -- -f apis/dok-api.yaml --dex <PATH>
202+
raplp -f openapi.yaml --dex <PATH>
140203
```
141204

142205
### Visa information version
143206
För att visa aktuell version av verktyget, lägg till `--version`
144207

145-
**Exempel**
146-
147208
```bash
148-
npm start -- --version
209+
raplp --version
149210
```
150211

151212
### Visa hjälp
152213

153214
```bash
154-
npm start -- --help
215+
raplp --help
155216
```
156217

157-
### Testa mot publicerat npm paket
158-
> OBS se till så att .npmrc verkligen är konfigurerat mot @diggsweden:registry=https://npm.pkg.github.com
159-
160-
För att köra mot ett **publicerat** paket istället för lokala byggen, se [npm paket](https://github.com/diggsweden/rest-api-profil-lint-processor/pkgs/npm/rest-api-profil-lint-processor) för version och använd:
161-
162-
163-
```bash
164-
npm login --registry=https://npm.pkg.github.com
165-
# username: ditt GitHub-användarnamn
166-
# password: GitHub PAT med read:packages
167-
```
168-
169-
> Om du saknar inloggning med GitHub PAT, se [Access till registry](#access-till-registry)
170-
171-
Kör sedan:
172-
```bash
173-
# npx @diggsweden/rest-api-profil-lint-processor@1.0.0 -f openapi-test.yaml -l rap-lp.log -d avstamning.xlsx
174-
npx @diggsweden/rest-api-profil-lint-processor@1.0.0 -f <PATH>/<YAML_FILE>
175-
```
176-
177-
---
178-
179-
### Användning via podman/docker
180-
181-
> För alla kommandon bör ***podman*** kunna ersättas med ***docker*** om så önskas.
182-
183-
I en terminal kör:
184-
```bash
185-
podman run --rm -it -v $(pwd):/<PATH> ghcr.io/diggsweden/rest-api-profil-lint-processor:<VERSION X.X.X> -f <PATH>/<YAML_FILE>
186-
```
187-
* Där \<PATH> motsvarar den path i containern som du vill att nuvarande katalog \$(pwd) mountas in i, containern får tillgång till dina filer i \$(pwd).
188-
* Där \<YAML_FILE> motsvarar den filen som du vill applicera valideringen på.
189-
* Där \<VERSION> mostsvarar den version av rest-api-profilen som du vill nyttja.
190-
191-
Exempel
192-
```bash
193-
podman run -it -v $(pwd):/app/example ghcr.io/diggsweden/rest-api-profil-lint-processor:1.0.0 -f example/dot-api.yaml -l example/rap-lp.log --dex example/avstamning.xlsx
194-
```
195-
196-
Vid eventuella fel och du inte hittar rap-lp-error.log kan du behöva köra kommandot via containern enligt den alternativa instruktionen nedan.<br>
197-
Se till att containern har rättigheter att skriva till den katalog som du mountar, se [Skrivåtkomst till mount från container](#skrivåtkomst-till-mount-från-container).
198-
199-
#### Alternativ att köra ifrån containern
200-
1. Starta en podman container:
201-
- podman run --rm -it --entrypoint /bin/sh -v $(pwd):/\<PATH> ghcr.io/diggsweden/rest-api-profil-lint-processor:0.3.0
202-
2. Kör din validering ifrån containern:
203-
- npm start -- -f \<PATH-TO-FILE>
204-
3. Lägg på önskade flaggor enligt tidigare exempel.
205-
206-
Exempel:
207-
```bash
208-
$ podman run --rm -it --entrypoint /bin/sh -v $(pwd):/apis ghcr.io/diggsweden/rest-api-profil-lint-processor:0.3.0
209-
210-
/app: $ npm start -- -f apis/dot-api.yaml -l rap-lp.log --dex example.xlsx
211-
```
212-
213-
### Eventuella hinder med podman-kommando
214-
215-
#### Access till registry
216-
217-
Du kan behöva ett Personal Access Token (PAT) för din användare i github för att kunna hämta images från Github Container Registry (GHCR).
218-
1. Skapa PAT i github via settings -> developer settings -> tokens -> generate new token.
219-
- viktigt att sätta read:packages
220-
- spara ned ditt token
221-
2. Logga in med:
222-
- kör i en terminal: podman login ghcr.io
223-
- användarnamn: Ditt github-användarnamn.
224-
- lösenord: ditt token från tidigare steg.
225-
3. Validera enligt tidigare exempel.
226-
227-
#### Skrivåtkomst till mount från container
228-
1. Kolla rättigheter
229-
```bash
230-
ls -ld /path/to/mount
231-
```
232-
2. För att testa om det är ett åtkomstproblem kan du temporärt prova om det går efter du gett alla skrivrättigheter till den mountade katalogen:
233-
```bash
234-
sudo chmod 777 /path/to/mount
235-
```
236-
3. Beroende på din miljö och vilka möjligheter du har, hantera åtkomstproblemet mer beständigt och återställ tidigare läs- och skrivrättigheter.
237-
4. Du kan även prova:
238-
```bash
239-
sudo podman run -it -v $(pwd):/app/example ghcr.io/diggsweden/rest-api-profil-lint-processor:1.0.0 -f example/dot-api.yaml -l example/rap-lp.log --dex example/avstamning.xlsx
240-
```
241-
242218
### Riktlinjer och förklaringar
243219
Vill du veta mer om de specifika reglerna som verktyget tillämpar, se avsnittet [GUIDELINES](GUIDELINES.md) för detaljer.
244220

@@ -294,6 +270,29 @@ Kravet har bedömts ha allvarlighetsgraden Warning eftersom API:et bryter mot et
294270

295271
Om du har frågor, funderingar, buggrapporter etc, vänligen kontakta [Digg - Agency for Digital Government](https://www.digg.se/)
296272

273+
## FAQ
274+
### Hur skapar jag ett GitHub Personal Access Token (PAT)?
275+
1. Gå till GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.
276+
2. Sätt Name och Expiration (ha utgångsdatum!).
277+
3. Resource owner: välj din org/användare som äger paketen.
278+
4. Repository access: välj relevanta repo(n).
279+
5. Permissions:
280+
- För GHCR (containers): Packages → Read (lägg även Write om du ska pusha).
281+
- För npm.pkg.github.com (npm-paket): Packages → Read och se till att tokenet har åtkomst till det repo där paketet bor.
282+
6. Skapa token → kopiera värdet direkt (visas bara en gång).
283+
284+
```bash
285+
npm login --registry=https://npm.pkg.github.com
286+
# username: ditt GitHub-användarnamn
287+
# password: GitHub PAT med read:packages
288+
```
289+
290+
```bash
291+
podman login ghcr.io
292+
# username: ditt GitHub-användarnamn
293+
# password: GitHub PAT med read:packages
294+
```
295+
297296
## Bidra
298297

299298
Om du vill bidra till projektet, vänligen följ instruktionerna i avsnittet [Contributing](CONTRIBUTING.md).

0 commit comments

Comments
 (0)