Wire™
Lithium
- Lithium is Wire Services SDK written in Java
How to use it to build your bots?
- In your
pom.xml
:
<dependencies>
<dependency>
<groupId>com.wire</groupId>
<artifactId>lithium</artifactId>
<version>3.4.0</version>
</dependency>
<dependencies>
If you want to use Version resource (API endpoint), you must create version file during the build.
For example, during the Docker build, one can put following code inside Dockerfile
:
# create version file
ARG release_version=development
ENV RELEASE_FILE_PATH=/path/to/release.txt
RUN echo $release_version > $RELEASE_FILE_PATH
And than add build argument ie. in the build pipeline like that.
Tutorial:
Bot API Documentation
How to build the project
Requirements:
To build the library, run:
mvn install -DskipTests
How to register your service with Wire
The manage.sh
script helps you register as a service provider, create a certificate, and register your service instance.
Script requirements
How to use the script
In order to register a service, you need to generate a certificate (or bring your own), register as a provider and then register the service.
Using the manage.sh
script:
- Register as a provider with
manage.sh new-provider
. If everything goes well, the response will contain a password and provider ID, and you should get an email. Open the email and follow the link in the email to confirm your identity. You need to do this only once, even when developing multiple services. This will save the credentials in the local folder, for further authentication. - If you don't have a certificate already, create a new certificate with
manage.sh new-cert
and follow the instructions. This needs to match the certificate that is used for the SSL termination on your service. - Deploy your service and make it accessible by public IP, using HTTPS and the certificate you created at step one.
- Obtain an authentication token with
manage.sh auth-provider
. This is a temporary token to perform authenticated requests, and will need to be refreshed periodically if you don't use the script for more than 10 minutes. - Register a new service with
manage.sh new-service
and enter the required information. Make sure the base URL is anhttps
URL. You will receive an service auth token. - Once a server is created, you can update it with
manage.sh update-service
. - Edit the YAML configuration file of your service and add the service token you received at the previous step.
- (Re)-start the service with the new configuration file.
- Activate the service with
manage.sh update-service-conn
to make it enabled
Use Hello World sample service as your first service
Environment variables used:
WIRE_API_HOST
: Wire Backend.https://prod-nginz-https.wire.com
by defaultSERVICE_TOKEN
: Your service authentication token. All requests sent by the BE will have this token as Bearer Authorization HTTP header
Logging to JSON
Wire uses JSON logging in the production. To enable JSON logging one must specify json-console
appender in the Dropwizard yaml.
logging:
appenders:
- type: json-console
Other examples of Wire Services
- Hello World
- GitHub-bot
- GitLab-bot
- Alert-bot
- Texas Holdem
- Broadcast-bot
- Channel-bot
- Don
- Recording-bot