{"id":49341586,"url":"https://github.com/redborder/rb-arubacentral","last_synced_at":"2026-04-27T04:04:31.416Z","repository":{"id":203307205,"uuid":"708757361","full_name":"redBorder/rb-arubacentral","owner":"redBorder","description":"Service to get location API information from Aruba Central","archived":false,"fork":false,"pushed_at":"2024-05-28T20:59:13.000Z","size":9046,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-29T21:06:39.521Z","etag":null,"topics":["aruba","arubanetworks","autodelivery","kafka","redborder","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redBorder.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":"2023-10-23T10:30:22.000Z","updated_at":"2024-05-29T21:06:39.522Z","dependencies_parsed_at":"2023-10-27T08:26:54.236Z","dependency_job_id":"f2683789-0ab8-4ef5-affd-5b0dde8a9dab","html_url":"https://github.com/redBorder/rb-arubacentral","commit_stats":null,"previous_names":["redborder/rb-arubacentral"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/redBorder/rb-arubacentral","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redBorder%2Frb-arubacentral","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redBorder%2Frb-arubacentral/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redBorder%2Frb-arubacentral/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redBorder%2Frb-arubacentral/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redBorder","download_url":"https://codeload.github.com/redBorder/rb-arubacentral/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redBorder%2Frb-arubacentral/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32321945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"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":["aruba","arubanetworks","autodelivery","kafka","redborder","ruby"],"created_at":"2026-04-27T04:04:27.996Z","updated_at":"2026-04-27T04:04:31.403Z","avatar_url":"https://github.com/redBorder.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rb-arubacentral\n![tests](https://github.com/redBorder/rb-arubacentral/actions/workflows/tests.yml/badge.svg?event=push)\n![rubocop](https://github.com/redBorder/rb-arubacentral/actions/workflows/rubocop.yml/badge.svg?event=push)\n[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)\n[![codecov](https://codecov.io/gh/redBorder/rb-arubacentral/graph/badge.svg?token=PM3AX50GFX)](https://codecov.io/gh/redBorder/rb-arubacentral)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FredBorder%2Frb-arubacentral.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FredBorder%2Frb-arubacentral?ref=badge_shield)\n\nAruba Central is a cloud-based network management platform, similar to ALE (`Aruba Location Engine`) and Cisco MSE (`Mobility Services\nEngine`). It is developed by Aruba Networks, a Hewlett Packard Enterprise company. Aruba Central provides centralized management and monitoring of Aruba network devices, such as switches, routers, and wireless access points.\n\nThe goal of the Aruba Central service is to fetch data from Aruba Central APs and transform it into real-time actionable information to track the mobility of people connected to Aruba Central APs.\n\n## 1. Workflow\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/workflow.png\"\u003e\n\u003c/p\u003e\n\nThe rb-arubacentral service processes data from the Aruba Central REST API. After retrieving the data, it generates two types of objects: the AP status and the mobility data. It then generates Kafka events and sends them to the Kafka broker in batches with the location data and the APs status data.\n\n## 2. Caching\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/cache.png\"\u003e\n\u003c/p\u003e\n\nThe rb-arubacentral can cache data for common requests. This is done to reduce API calls to the Aruba Central REST. The service first checks if the request is in the cache list. If it's not, then it will call the Aruba Central service as usual. If it's in the list, it will retrieve the data from the cache. Subsequently, it will read from the cache until it expires and then refresh its cache again by calling the REST.\n\n\n## 3. Config\n### 3.1 Sensors\n- **sensor_name** (string): Name of the aruba central sensor\n- **gateway** (string): Where the gather the information\n- **email** (string): Aruba Central Email\n- **password** (string): Aruba Central Password\n- **client_id** (string): Aruba Central Client ID\n- **client_secret** (string): Aruba Central Client Secret\n- **customer_id** (string): Aruba Central Customer ID\n\n### 3.2 Kafka\n- **broker** (string): Kafka Broker\n- **producer_name** (string): Kafka Producer Name\n- **location_topic** (string): Kafka Location Topic\n- **status_topic** (string): Kafka Status Topic\n\n### 3.3 Service\n- **sleep_time** (integer): Sleep time of service in seconds (for the main loop)\n- **log_level** (integer): Log Level (2=info) (3=debug)\n\n### 3.4 Flow Sensors\n- **sensor_name** (string): Name of the sensor\n- **sensor_uuid** (string): UUID v4 of the sensor\n- **access_points** (array): Access points of the flow sensor\n\n### 3.5 Cache\n- **ttl** (hash): Cache ttl based on function method when requesting to aruba central \n- **keys** (array): List of functions to catch result for\n\n\n### 3.6 Example\n\n```yaml\nsensors:\n  -\n       sensor_name: Aruba Central\n       gateway: 'https://apigw-eucentral3.central.arubanetworks.com'\n       email: 'admin@admin.com'\n       password: 'admin'\n       client_id: 'admin'\n       client_secret: 'admin'\n       customer_id: 'admin'\nkafka:\n  broker: 'kafka.redborder.cluster:9092'\n  producer_name: my_aruba_producer\n  location_topic: rb_loc\n  status_topic: rb_status\nservice:\n  sleep_time: 300\n  log_level: 2\nflow_sensors:\n  -\n       sensor_name: MySensorName\n       sensor_uuid: 2e7241e4-12cf-4c6b-926c-5524ad537179\n       access_points: [\"00:00:00:00:00:01\", \"00:00:00:00:00:02\", \"00:00:00:00:00:03\"]\ncache:\n  ttl:\n    fetch_all_campuses: 3600\n    fetch_campus: 1800\n    fetch_floor_location: 7200\n    fetch_building: 14400\n  keys: [fetch_all_campuses fetch_campus fetch_floor_location fetch_building]\n  ```\n\n## 4. How to install?\n\nThe rb-arubacentral has been tested on ruby `2.1.2` and ruby `2.1.9`, you can install and run the program executing the following instructions\n\n```bash\ncd rb-arubacentral\nrvm install 2.1.2\nbundle install\n```\n### 4.1 Running\n\nFor running the service you can pass custom config file using `-c`, for example `ruby ./bin/rb_arubacentral.rb -c /path/to/my/config.yml` or you can just run `ruby ./bin/rb_arubacentral.rb` and it will take the default config file.\n\n## 5. Contribute\n\n* Create a fork of the project\n* Create a branch `bugfix_myfix`, `feature_myfeature`, `improvement_myimprovement`\n* Create the test\n* Run the tests ensuring all pass using `rake test`\n* Open a PR to the master branch\n\n## 5. License\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FredBorder%2Frb-arubacentral.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FredBorder%2Frb-arubacentral?ref=badge_large)\n\n## 6. Authors\n\n* Miguel Álvarez Adsuara \u003cmalvarez@redborder.com\u003e\n* Nils Verschaeve \u003cnverschaeve@redborder.com\u003e\n* David Vanhoucke \u003cdvanhoucke@redborder.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredborder%2Frb-arubacentral","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredborder%2Frb-arubacentral","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredborder%2Frb-arubacentral/lists"}