{"id":22868510,"url":"https://github.com/datavenueliveobjects/googlecloud_lo_connector_to_install_on_gcp","last_synced_at":"2025-10-03T17:32:09.041Z","repository":{"id":38456560,"uuid":"313246998","full_name":"DatavenueLiveObjects/GoogleCloud_LO_connector_to_install_on_GCP","owner":"DatavenueLiveObjects","description":"This repository contains everything you need to create 'Live Objects to Google PubSub' connector. This project is intended for Live Objects users wishing to explore integration patterns with Google and for organizations already running business logic on Google planning to work on events from IoT devices sourced via Live Objects.","archived":false,"fork":false,"pushed_at":"2025-05-19T14:32:20.000Z","size":344,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-19T15:49:28.760Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DatavenueLiveObjects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-16T09:13:39.000Z","updated_at":"2025-05-19T14:33:06.000Z","dependencies_parsed_at":"2024-04-15T14:04:02.166Z","dependency_job_id":null,"html_url":"https://github.com/DatavenueLiveObjects/GoogleCloud_LO_connector_to_install_on_GCP","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/DatavenueLiveObjects/GoogleCloud_LO_connector_to_install_on_GCP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FGoogleCloud_LO_connector_to_install_on_GCP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FGoogleCloud_LO_connector_to_install_on_GCP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FGoogleCloud_LO_connector_to_install_on_GCP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FGoogleCloud_LO_connector_to_install_on_GCP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DatavenueLiveObjects","download_url":"https://codeload.github.com/DatavenueLiveObjects/GoogleCloud_LO_connector_to_install_on_GCP/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FGoogleCloud_LO_connector_to_install_on_GCP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278197355,"owners_count":25946541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-03T02:00:06.070Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-13T12:35:36.130Z","updated_at":"2025-10-03T17:32:09.000Z","avatar_url":"https://github.com/DatavenueLiveObjects.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Table of contents\n* [General info](general-info)\n* [Technologies](technologies)\n* [Requirements](requirements)\n* [Getting the installation package](#getting-the-installation-package)\n* [Installation](#installation)\n* [Configuration](configuration)\n    * [Live objects side](live-objects-side)\n    * [Google Cloud Platform](google-cloud-platform)\n    * [Create google PubSub queue](create-google-pubsub-queue)\n    * [Connector](connector)\n* [Launching](launching)\n    * [Installation](installation)\n\n## General info\nThis repository contains everything you need to create 'Live Objects to Google PubSub' connector. This project is intended for Live Objects users wishing to explore integration patterns with Google and for organizations already running business logic on Google planning to work on events from IoT devices sourced via Live Objects.\n\nMain feature is: \n* **messages synchronization** - every message which will be send from device to Live Objects will appear in Google PubSub\n\nOne connector can handle one Live Objects account and one PubSub Service. \n\nIt can be many instances of connector per Live Objects account.\n\nThe software is an open source toolbox which has to be integrated into an end to end solution. The ordering of messages is not guaranteed to be preserved.\nLive Objects platform supports load balancing between multiple MQTT subscribers.\n\n## Technologies\n* Java 8\n* Spring Boot 2.4.4\n\n## Requirements\nIn order to run the connector you need to have:\n* **Live Objects account**\n  * API key which can access the queue\n  * MQTT fifo queue (both MQTT fifo queue and API key generation is described in the [user guide](https://liveobjects.orange-business.com/#/cms/ressources-guide-utilisateur/))\n* **Google Cloud Platform account**\n  * Service account private key\n  * PubSub Service enabled\n* **Development tools (only when building the package)**\n   * Java and supporting IDE (e.g. IntelliJ, Eclipse)\n   * Apache Maven\n\n## Getting the installation package\n\nThe installation package can be acquired in one of two ways:\n\n### Release\n\nIt can be downloaded from https://github.com/DatavenueLiveObjects/GoogleCloud_LO_connector_to_install_on_GCP/releases\n\n### Building\n\nIt can be created by running the command:\n```\nmvn clean package -Prelease\n```\nAfter running this command, the file  `mqtt2sqs-[VERSION].zip` will be created in the target directory.\n\n## Installation\n\nThe file downloaded/created above should be placed where the connector will be started, and then unpacked. You can deploy this connector wherever you want (local server, cloud provider etc.).\n\nAfter unpacking the archive, you should get a structure similar to this:\n```\nbin/\nconf/\ndata/\nlib/\n```\n\n## Configuration\n\n### Live objects side\n\n#### Generate Live Objects API key\nLogin to Live Objects Web Portal and go to **Administration** -\u003e **API keys**  \n![Api Keys 1](./assets/api_key_1.png)  \n\nClick **Add** button and fill fields.  \n\n![Api Keys 2](./assets/api_key_2.png)\nTo  validate  the  creation  of  the  key,  click  on  the **Create** button.  Your  key  is  generated  in  the form of an alphanumeric sequence and a QR code.\n\n### Google Cloud Platform\n\n#### Create service account private key\n\nPlease generate service account private key json file. Generated file should be placed in project, default location is ```credentials/auth.json```.\nYou can find information how to generate such file [here](https://cloud.google.com/docs/authentication/production#create_service_account)\n\n### Create google PubSub queue\n\nHow to generate Google PubSub queue is described [here](https://cloud.google.com/pubsub/docs/quickstart-console) \n\n### Connector\nAll configuration can be found in **application.yaml** file located in ```src/main/resources```\n\n```\n1     lo:\n2       hostname: liveobjects.orange-business.com\n3       api-key: YOUR_API_KEY\n4       connection-timeout: 30000\n5       topics:\n6         - MESSAGES_TOPIC_1\n7         - MESSAGES_TOPIC_2\n8       message-qos: 1\n9       synchronization-interval: 60000\n10      mqtt-persistence-dir: ${basedir:.}/temp/\n11      keep-alive-interval-seconds: 30\n12      message-batch-size: 10\n13      task-queue-size: 150000\n14      thread-pool-size: 40\n15      keep-alive-time: 10\n16    \n17    google:\n18      pub-sub:\n19        project-id: YOUR_PROJECT_ID\n20        topic-id: YOUR_TOPIC_ID\n21        auth-file: credentials/auth.json\n22        message-batch-size: 10\n23        message-sending-fixed-delay: 1000\n24        initial-retry-delay: 100\n25        retry-delay-multiplier: 1.3\n26        max-retry-delay: 60000\n27        initial-rpc-timeout: 5000\n28        rpc-timeout-multiplier: 1.0\n29        max-rpc-timeout: 600000\n30        total-timeout: 600000\n31    \n32    management:\n33      endpoints:\n34        web:\n35          exposure:\n36            include: info, health, metrics\n```\n\n\nYou can change all values but the most important lines are:\n\n\n**2** - Live Objects hostname  \n**3** - Live Objects API key with at least BUS_R role  \n**4** - This value, measured in miliseconds, defines the maximum time interval the client will wait for the network connection to the MQTT server to be established  \n**5** - Names of the Live Objects MQTT queues  \n**9** - How ofter messages will be synchronized im milliseconds  \n**11** - This value, measured in seconds, defines the maximum time interval between messages sent or received. It enables the client to detect if the server is no longer available, without having to wait for the TCP/IP timeout. The client will ensure that at least one message travels across the network within each keep alive period.  In the absence of a data-related message during the time period, the client sends a very small \"ping\" message, which the server will acknowledge. A value of 0 disables keepalive processing in the client.    \n**19** - Project ID  \n**20** - Google PubSub topic ID.  \n**21** - Related path to json file with service account private key.  \n**23** - message-sending-fixed-delay - How often messages will be sent to DIS in milliseconds\n\n#### Logging\nLogging configuration can be found in **logback.xml** file located in src/main/resources. You can find more information about how to configure your logs [here](http://logback.qos.ch/manual/configuration.html)\n\n\n## Launching\nIn order to run the connector, use the `app.sh` file for linux or `app.bat` if you are using windows. These files are located in the `bin/` directory.\n\n### Installation\n\nYou can deploy this connector wherever you want (local server, cloud provider etc.)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatavenueliveobjects%2Fgooglecloud_lo_connector_to_install_on_gcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatavenueliveobjects%2Fgooglecloud_lo_connector_to_install_on_gcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatavenueliveobjects%2Fgooglecloud_lo_connector_to_install_on_gcp/lists"}