colnod-connector/README.md

123 lines
3.9 KiB
Markdown

# colnod-connector
Acces Management System of Colsys: [Product info](http://produkty.colsys.cz/colnod/)
## TODO
- [ ] Debug Mode
- [ ] Logs
- Timestamp
- Id of record
- Destination
- Report
- Token `action` to `subject_id`
- Sbject `action`
- `action` - updated, deleted, added
- [ ] App output
- To Colnod
- Number of tokens added/deleted/updated
- To DB
- Number of subjects added/deleted/updated
- Number of tokens added/deleted/updated
## Requirements
- QPSQL driver must be installed (PostgreSQL)
- running on Qt 5.9
### Qt 5
```
sudo apt-get install -y build-essential
sudo apt-get install -y qt5-default
```
### PostgreSQL ( devel libs )
```
sudo apt-get install -y libpq-dev
sudo apt install libqt5sql5-psql # psql driver for Qt
```
## Endpoints
- POST `/AaaManager/authSession`
- Header: Authorization: Basic =4589022lj3.....
- password: spaceti1 -> sha512 `echo spaceti1 | sha512sum`
```bash
E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0
```
- body:
```json
{
"password": "E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0",
"username": "spaceti"
}
```
1. GET request - `/SubjectManager/getSubjects` - get subjects
2. GET request - `/TokenManager/getTokens` - get tokens
3. POST request - `/TokenManager/setTokens` - set tokens
## RestAPI definitions
- `openapi.yaml` ( editor `VSCode` with `Swagger Viewer` extension - ⌘+⇧+P `Preview Swagger` )
## Colnod Test server
[Colnod server: confluence](https://spaceti.atlassian.net/wiki/spaces/IN/pages/97320961/Colsys+-+Colnod)
- URL: `192.168.1.3:8843`
- `!!! No license!!!` - server will shutdown after 8 hours.
- restart: `sudo service cndserver start`
- check `nmap -p8443 192.168.1.3` or `nc -zvw3 192.168.1.3 8443`
- user: `spaceti`
- password: ``
- sha512: `E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0`
```bash
curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" -d '{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}' -H "Content-Type: application/json" https://192.168.1.3:8443/AaaManager/authSession
```
## Colnod Penta server
- Acces through: `penta-master` IP:`172.16.3.4`
- URL: `192.168.254.11:8443`
- Port forwarding: `ssh -L 8443:192.168.254.11:8443 penta-master`
- `!!! does not work !!!`
```bash
curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" -d '{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}' -H "Content-Type: application/json" https://192.168.254.11:8443/AaaManager/authSession
```
## Insomnia Rest client
[Insomnia Rest](https://insomnia.rest/)
It is possible to chain requests: [see doc](https://support.insomnia.rest/article/43-chaining-requests)
- use token from login response as an Authorization header
- use id from POST /item in PUT /items/<id>
- use entire body from one response to upload to another
### Import workspace
- import: `Insomnia_2019_10_01.yaml`
## Testing Blueprint API
### Snowboard
#### Necesarry to allow
- Self signed certificate: [Stack overflow](https://superuser.com/a/1235250)
- Enable CORS:
- Safari: Develop->Disable cross origin restrictions
`snowboard http -c snowboard.yml --playground colnod.apib`
[Colnod API snowboard documentation](http://localhost:8088)
#### Install snowboard
`npm install -g snowboard`