# Hlæja Device API Classes and endpoints, to shape and to steer, Devices and sensors, their purpose made clear. Each message exchanged, each packet that waits, Travels through layers, as data translates. API pathways, structured and strong, Link devices to services, where data belongs. Bound by one purpose, data flows onward, Answering each call, steadfast and forward. ## Properties for deployment | name | required | info | |-------------------------------|----------|-------------------------| | spring.profiles.active | * | Spring Boot environment | | server.port | * | HTTP port | | server.ssl.enabled | * | HTTP Enable SSL | | server.ssl.key-store | * | HTTP Keystore | | server.ssl.key-store-type | * | HTTP Cert Type | | server.ssl.key-store-password | ** | HTTP Cert Pass | | jwt.public-key | * | JWT public key | | device-registry.url | * | Device Register URL | | device-data.url | * | Device Data URL | Required: * can be stored as text, and ** need to be stored as secret. ## Releasing Service Run `release.sh` script from `master` branch. ## Development Configuration ### Developer Keystore 1. Open `hosts` file: * On Unix-like systems (Linux, macOS), this directory is typically `/etc/hosts`. * On Windows, this directory is typically `%SystemRoot%\System32\drivers\etc\hosts`. 2. Add the following lines to the `hosts` file: ```text 127.0.0.1 deviceapi # Hlæja Device API ``` 3. Generate Keystores ```shell keytool -genkeypair -alias device-api -keyalg RSA -keysize 2048 -validity 3650 -dname "CN=deviceapi" -keypass password -keystore ./cert/keystore.p12 -storetype PKCS12 -storepass password ``` 4. Export the public certificate ```shell keytool -export -alias device-api -keystore ./cert/keystore.p12 -storepass password -file ./cert/device-api.cer -rfc ``` ### Public RSA Key To validate devices, copy file named `public_key.pem` from `./cert` generated for local development in **Hlæja Device Register** in to `./cert`. ### Global gradle properties To authenticate with Gradle to access repositories that require authentication, you can set your user and token in the `gradle.properties` file. Here's how you can do it: 1. Open or create the `gradle.properties` file in your Gradle user home directory: - On Unix-like systems (Linux, macOS), this directory is typically `~/.gradle/`. - On Windows, this directory is typically `C:\Users\\.gradle\`. 2. Add the following lines to the `gradle.properties` file: ```properties repository.user=your_user repository.token=your_token_value ``` or use environment variables `REPOSITORY_USER` and `REPOSITORY_TOKEN`