Table of Contents
Q1 2024 Release Notes
January - March 2024
Highlights
This quarter focuses on brand refresh, pricing updates, and platform improvements.
- Rebranded from "Tether" to "TetherX" throughout
- New tiered pricing structure based on camera count
- Enhanced drive detection and monitoring
User-Visible Changes
Branding & Partners
- Refreshed brand colours: primary colour is now #ed673e (warm orange), secondary colour #2d4b69 (navy blue) for improved visual consistency.
- Added logos for new integrator partners: AllGuard, Chris Lewis Security, DS Systems, and Social Telecoms.
Pricing Updates
- Introduced new tiered pricing structure based on camera count to better align with actual usage:
- Added specific pricing for TetherBox 16 (£18.31 for up to 16 Cameras) and TetherBox 35 (£40.08 for up to 35 Cameras) models.
- TetherBox Giga edition now charges for minimum 20 channels (£22.90) to reflect higher processing capabilities.
- Updated billing threshold: TetherBoxes now show billing required 1 month + 1 day before renewal date (previously on renewal date only), giving integrators more advance notice for payment collection.
Software & Performance
- Updated to version 4.06 (from 4.00rc13).
- Improved deployment process with automatic retry every 24 hours for TetherBoxes with missing MQTT heartbeat, reducing manual intervention for integrators when connectivity issues occur.
- Added new deployment strategy for legacy TetherBoxes (pre-4.05), ensuring smoother upgrades across all hardware generations.
- Enhanced drive detection and monitoring with improved handling for NVMe Drives and better error reporting for drive health issues.
- Added automatic detection of ejected Drives, helping facility managers and integrators identify when storage media has been physically removed.
Monitoring & Diagnostics
- Improved TetherBox health monitoring by including
channel_limitanddetail_idfields in statistics, enabling better capacity planning for integrators. - Enhanced network device tracking with improved MAC address database (839 new vendor prefixes added), making it easier to identify connected equipment on customer networks.
- Better handling of TetherBox offline notifications with improved scheduling and cache management, reducing false alarms for facility managers.
- Added new
in_recent_usescope to identify TetherBoxes active within the last month, useful for integrators reviewing customer installations.
Camera Management
- Added default configuration support for SnapAV cameras, expanding compatible equipment options for integrators.
- Updated Lilin camera stream paths (changed from
/rtsph264480pand/rtsph2641080pto/stream1and/stream0), improving compatibility with newer Lilin models.
Camera Operations
- Improved camera counter updates with better null safety checks, preventing errors when cameras are moved between TetherBoxes.
- Enhanced zone update logic with additional safety checks to prevent nil reference errors during camera configuration changes.
- Fixed camera URL generation to properly handle last known IP addresses, improving reconnection reliability after network changes.
- Corrected log message from "Updation camera" to "Updating camera" for clearer deployment logs.
Cloud Recording
- Improved cloud storage reliability with better null safety when accessing TetherBox subscription information.
- Enhanced media information parsing for camera resolution detection, supporting both standard and NVMe-based cameras.
Events & ANPR
- Optimised database indexing strategy using partial filter expressions for flagged, closed, and shared Events, significantly improving query performance when facility managers filter large event lists.
- Added partial index for incomplete Events, speeding up API queries when TetherBoxes search for existing Events.
- Improved event duration calculations and validation.
- Enhanced LPR (Licence Plate Recognition) country code matching with workaround for Hikvision iDS Cameras reporting 'GreatBritain' instead of 'GBR'.
Access Control
- Updated default Paxton Net2 integration port from 8080 to 8443 for enhanced security.
- Updated Paxton client ID to latest version for improved compatibility.
- Added automatic cleanup of Access Control Events older than 1 month to manage database growth.
Tip: Extended retention may be offered as a paid feature in future.
Notifications
- Changed default for analytics notifications to disabled (previously enabled) to reduce notification fatigue for new users. Facility managers can still enable this in their settings if they wish to receive motion detection alerts.
- Improved notification handling for ANPR events with better error handling for unknown camera zones.
User Permissions
- Enhanced permission checks for access control events, properly validating timeline access and access control permissions.
- Improved support access validation throughout the platform, ensuring integrators can only access customer sites when support access is explicitly enabled.
Statistics & Reporting
Account Management Terminology
- Renamed "Tether Account Manager" to "TetherX Account Manager" throughout statistics, reports, and filtering interfaces for brand consistency.
- Updated all related database fields, methods, and UI references to use new terminology.
- Updated subscription spreadsheet generation to reflect new account manager naming.
Targets & Reporting
- Extended monthly revenue targets through January 2025 with progressive growth targets (£21,500 in Jan 2024 increasing to £27,500 by Jan 2025).
- Added bank holidays through 2026 for accurate working day calculations in sales reports.
- Enhanced daily targets reporting with detailed breakdown by integrator company, showing MRR (Monthly Recurring Revenue) split between TetherBox platform fees and camera subscriptions.
- Improved company name handling in reports with abbreviated names for better dashboard readability.
- Daily target messages now posted to #commercial Slack channel for better visibility.
Subscription Management
Invoice Calculations
- Improved subscription invoice helper to properly detect TetherX brand (handles both "Tether" and "TetherX" brand names).
- Enhanced spreadsheet generation with better handling for cameras without associated TetherBoxes.
- Fixed camera installation type reporting in subscription spreadsheets.
Company & Distributor Filtering
- Updated all filtering interfaces to use "TetherX Account Manager" terminology.
- Improved distributor account manager filtering throughout the platform.
API & Integration
API v3 Improvements
- Simplified API controller guard clauses for better code readability.
- Added commented code for temporarily reducing load on message consumer during high traffic periods (can be enabled by support team if needed).
- Improved recording status responses: now uses HTTP 304 Not Modified (instead of rendering status) when recordings are outside camera schedule, reducing bandwidth usage.
- Enhanced trigger parameter validation and error handling.
MQTT & Real-time Communication
- Updated MQTT message handling for alarm, camera, and device channels with improved iteration patterns.
- Better handling of grouped devices when refreshing states.
Testing & Development
Test Infrastructure
- Updated parallel test execution using new
bin/parallel_rspecwrapper. - Enhanced test runner with CI_RETRY support (reduced from 5 to 3 retries for faster feedback).
- Added failing specs logging to
tmp/failing_specs.logfor easier debugging. - Removed deprecated Jenkins script (
do_specs.sh). - Added Spring binstub for improved development performance.
Performance Benchmarks
- Added comprehensive parallel testing benchmarks for Mac Mini M1 2020 and MacBook Pro M3 Max.
- Optimal test performance: 10 parallel processes on M3 Max (3:06 average), 5 processes on M1 Mac Mini (9:31 average).
Database & Models
Optimisations
- Improved iteration patterns using
each_key,each_value, andmaxfor better performance and readability. - Enhanced model callbacks with better nil safety checks throughout.
- Added safer handling for company and TetherBox associations when updating counters.
- Improved delegation patterns with consistent use of symbols for dynamic method calls.
Data Migrations
- Updated activation installation type migration: both 'xanview' and 'tether' types now converted to 'tetherx' for data consistency.
- Renamed
sellertotetherx_account_manageracross Company and TetherBox models.
Seeds & Sample Data
- Added TetherX default brand to seed data with subdomain 'monitor'.
- Updated company factory to use
tetherx_account_managerinstead oftether_account_manager.
Email Templates
- Updated welcome pack and subscription alert emails to use correct brand names.
- Fixed email subject in legacy update mailer: "This is what your clients say about TetherX" (previously "Tether").
- Updated company mailer to properly use TetherX account manager locale for internationalisation.
- Improved integrator status report generation with better user grouping.
Matrix Display Integration
- Updated test message for Matrix displays from 'Tether' to 'TetherX'.
Alarm System Integration
Texecom
- Improved alarm zone detection logic with clearer variable naming.
- Enhanced armed state detection using
any?instead ofselectfor better performance. - Fixed state change detection logic for more reliable alarm triggering.
Virtual Alarms
- Improved virtual alarm notification handling with early return patterns for better code clarity.
- Enhanced alarm zone mapping for more reliable event correlation.
Other Changes
- Relocated 'TetherX Account Manager' filter option in Companies and Subscriptions pages (same functionality, new terminology).
- Renamed internal
tether_account_managerfields and methods totetherx_account_managerthroughout the codebase. - Moved refresh_listeners.js from legacy location to utils folder for better code organisation.
Statistics
| Metric | Value |
|---|---|
| Commits | 56 |
| Lines added | 223 |
| Lines removed | 76 |
| Net change | +147 |
Internal
Code Quality & Modernisation
- Removed line continuation backslashes (
\) from Ruby code for improved readability per modern Ruby style guidelines. - Improved guard clause patterns throughout controllers and models, using early returns instead of unless conditions.
- Enhanced iterator usage: replaced
group_by(&:field).each do |key, values|witheach_keyoreach_valuewhere appropriate. - Removed unnecessary parentheses in conditional statements for cleaner code.
- Updated
keys.include?tokey?for more idiomatic Ruby. - Improved percentage calculation and sorting: replaced
compact.sort.lastwithcompact.max. - Enhanced string interpolation with direct variable insertion instead of concatenation.
Ruby 3 Compatibility
- Updated block forwarding syntax using
&and&blockfor better compatibility. - Improved argument forwarding with proper
...syntax. - Enhanced symbol method calls using
:"#{field}="pattern. - Updated
transform_values(&:uniq)for cleaner code.
Testing Improvements
- For integrators: Improved test reliability means fewer false alarms when deploying updates to customer sites.
- Enhanced factory definitions for better test data generation.
- Improved test helpers with better timeline selection support.
- Updated integration specs across cameras, companies, devices, events, TetherBoxes, and users.
Configuration
- Updated RuboCop configuration for better linting.
- Improved development and test environment configurations.
- Enhanced Gemfile with updated dependencies and better organisation.
Translation Updates
- Updated translation keys across all supported languages (English, Spanish, Hebrew, Russian, Ukrainian).
- Enhanced translation specs for better coverage.
Message Queue Monitoring
- Added message parser filtering capability for better debugging.
- Improved message queue statistics with configurable top N results (default 20).
- Enhanced payload analysis with better categorisation by trigger type and device status.
SIA (Security Industry Association) Integration
- Added new SIA server test implementation (sia_server_test2.rb) for improved alarm panel testing.
- Enhanced TCP server logging and connection handling.
- Improved CRC validation and message acknowledgement.
Cron Jobs
- Disabled pre-billing report emails (commented out) - manual invoicing process being reviewed.
- Added automatic cleanup of old Access Control events (older than 1 month).
- Enhanced daily and weekly cleanup tasks.
Prometheus Monitoring
- Added Prometheus exporter script for enhanced metrics collection and monitoring.
Infrastructure
- Updated vendor MAC address database with 839+ new manufacturer prefixes for better network device identification.
- Added Paxton licence file update (92ebef7c-9edc-442d-bc1c-584a7acd8bca.lic).
- Enhanced SSL certificate generation workflow.
Benefits for Users
- Code modernisation: Improved platform stability and faster page loads through more efficient code patterns.
- Enhanced testing: More reliable platform updates with comprehensive automated testing across all features.
- Better monitoring: Improved system health tracking helps our support team proactively identify and resolve issues before they affect users.
- Translation improvements: Better support for non-English users with updated and consistent terminology across all languages.