# colnod-connector Acces Management System of Colsys: [Product info](http://produkty.colsys.cz/colnod/) ## TODO - [ ] Debug Mode - [ ] Logs - Timestamp - Destination - Report - Number of new records - Number of updated records - Number of deleted records ## 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/ - 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`