Skip to content

Commit eeaf509

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

File tree

4 files changed

+229
-156
lines changed

4 files changed

+229
-156
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,6 @@ Om du bestämmer dig för att lösa ett ärende, se till att kolla kommentarsfä
7373

7474
Om någon har tagit på sig ett ärende men inte följer upp inom en vecka, går det bra att ta över – men lämna ändå en kommentar. Om det inte har varit någon aktivitet på ärendet på 7 till 14 dagar är det rimligt att anta att ingen jobbar på det.
7575

76-
77-
7876
## Återkoppling på ärenden och Pull Requests
7977

8078
Projektunderhållare kommer att göra sitt bästa för att granska och svara på ärenden inom fem arbetsdagar.
@@ -134,10 +132,9 @@ För säkerhetssårbarheter, följ riktlinjerna i vår [Säkerhetsinformation](S
134132
- Håll dokumentationen lättläst.
135133
- Använd punktlistor för tydlighet.
136134
- Var koncis och länka till externa resurser vid behov.
137-
- Använd brittisk engelska (t.ex. "colour" istället för "color").
138135
- Följ [en-mening-per-rad](https://sembr.org/)-principen i Markdown eller AsciiDoc.
139136

140-
Engelska är det primära språket, med översättningar på bästa möjliga sätt.
137+
Svenska är det primära språket.
141138

142139
## FOSS-standarder
143140

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)