Aircraft location data via ADS-B
The ETL automatically detects and classifies firefighting aircraft based on their transponder squawk code. This feature is based on New Zealand's Civil Aviation Rule Part 91, Rule 91.247 (Use of transponder and altitude reporting equipment), under Table 2: Airspace SSR Codes (CAA Rule 91.247):
| Flight rules | Type of aircraft operation | SSR Code |
|---|---|---|
| VFR | For aircraft involved in fire fighting and reconnaissance duties | 0111 |
Aircraft transmitting the configured firefighting squawk code (default: 0111) are automatically classified as:
- Fixed-wing aircraft:
FIRE_MULTI_USEicon - Helicopters:
FIRE_ROTORicon
This classification overrides any existing group assignment and ensures proper visual identification of firefighting aircraft on the map.
- a-f-A-M-F-A = Friendly Military Fixed Wing - Attack Aircraft
- a-f-A-M-F-C = Friendly Military Fixed Wing - Cargo Aircraft
- a-f-A-M-F-J = Friendly Military Fixed Wing - Jammer Aircraft
- a-f-A-M-F-O = Friendly Military Fixed Wing - Observation Aircraft
- a-f-A-M-F-Q = Friendly Military Fixed Wing - Drone Aircraft
- a-f-A-M-F-R-Z = Friendly Military Fixed Wing - Rescue Amphibian
- a-f-A-M-F-R = Friendly Military Fixed Wing - Reconnaissance Aircraft
- a-f-A-M-F-U = Friendly Military Fixed Wing - Utility Aircraft
- a-f-A-M-F-V = Friendly Military Fixed Wing - VIP Transport
- a-f-A-M-F-WX = Friendly Military Fixed Wing - Weather Aircraft
- a-f-A-M-F-Y = Friendly Military Fixed Wing - Training Aircraft
- a-f-A-M-H-H = Friendly Military Helicopter - Hospital/Medical
- a-f-A-M-H-R = Friendly Military Helicopter - Reconnaissance
- a-f-A-M-H-V = Friendly Military Helicopter - VIP Transport
- a-f-A-M-H = Friendly Military Helicopter - Generic
- a-n-A-M-F-V = Neutral Military Fixed Wing - VIP Transport
- CIV_FIXED_CAP = Civilian Fixed Wing - Civil Air Patrol
- CIV_FIXED_ISR = Civilian Fixed Wing - Intelligence/Surveillance/Reconnaissance
- CIV_LTA_AIRSHIP = Civilian Lighter Than Air - Airship
- CIV_LTA_BALLOON = Civilian Lighter Than Air - Balloon
- CIV_LTA_TETHERED = Civilian Lighter Than Air - Tethered
- CIV_ROTOR_ISR = Civilian Helicopter - Intelligence/Surveillance/Reconnaissance
- CIV_UAS = Civilian Unmanned Aircraft System
- CIV_UAS_ROTOR = Civilian Unmanned Helicopter System
- EMS_FIXED_WING = Emergency Medical Services Fixed Wing
- EMS_ROTOR = Emergency Medical Services Helicopter
- EMS_ROTOR_RESCUE = Emergency Medical Services Rescue Helicopter
- FIRE_AIR_ATTACK = Fire Service Command/Control Aircraft
- FIRE_AIR_TANKER = Fire Service Tanker Aircraft
- FIRE_INTEL = Fire Service Intelligence Aircraft
- FIRE_LEAD_PLANE = Fire Service Lead Aircraft
- FIRE_MULTI_USE = Fire Service Multi-Purpose Aircraft
- FIRE_ROTOR = Fire Service Helicopter
- FIRE_ROTOR_AIR_ATTACK = Fire Service Command/Control Helicopter
- FIRE_ROTOR_INTEL = Fire Service Intelligence Helicopter
- FIRE_ROTOR_RESCUE = Fire Service Rescue Helicopter
- FIRE_SEAT = Fire Service Single Engine Air Tanker
- FIRE_SMOKE_JMPR = Fire Service Smoke Jumper Aircraft
- FIRE_UAS = Fire Service Unmanned Aircraft System
- LE_FIXED_WING = Law Enforcement Fixed Wing
- LE_FIXED_WING_ISR = Law Enforcement Fixed Wing ISR
- LE_ROTOR = Law Enforcement Helicopter
- LE_ROTOR_RESCUE = Law Enforcement Rescue Helicopter
- LE_UAS = Law Enforcement Unmanned Aircraft System
- FED_FIXED_WING = Federal Agency Fixed Wing
- FED_FIXED_WING_ISR = Federal Agency Fixed Wing ISR
- FED_ROTOR = Federal Agency Helicopter
- FED_ROTOR_RESCUE = Federal Agency Rescue Helicopter
- FED_UAS = Federal Agency Unmanned Aircraft System
- MIL_ROTOR_MED_RESCUE = Military Medical Rescue Helicopter
- MIL_ROTOR_ISR_RESCUE = Military ISR/Rescue Helicopter
Deployment into the CloudTAK environment for ETL tasks is done via automatic releases to the TAK.NZ AWS environment.
Github actions will build and push docker releases on every version tag which can then be automatically configured via the CloudTAK API.
The workflow uses GitHub variables and secrets to make it reusable across different ETL repositories.
DEMO_STACK_NAME: Name of the demo stack (default: "Demo")PROD_STACK_NAME: Name of the production stack (default: "Prod")
DEMO_AWS_ACCOUNT_ID: AWS account ID for demo environmentDEMO_AWS_REGION: AWS region for demo environmentDEMO_AWS_ROLE_ARN: IAM role ARN for demo environmentPROD_AWS_ACCOUNT_ID: AWS account ID for production environmentPROD_AWS_REGION: AWS region for production environmentPROD_AWS_ROLE_ARN: IAM role ARN for production environment
ETL_NAME: Name of the ETL (default: repository name)
AWS_ACCOUNT_ID: AWS account ID for the environmentAWS_REGION: AWS region for the environmentAWS_ROLE_ARN: IAM role ARN for the environment
These variables and secrets can be set in the GitHub organization or repository settings under Settings > Secrets and variables.
For manual deployment you can use the scripts/etl/deploy-etl.sh script from the CloudTAK repo.
As an example:
../CloudTAK/scripts/etl/deploy-etl.sh Demo v1.0.0 --profile tak-nz-demo
When registering this ETL as a task in CloudTAK:
- Use the
<repo-name>.pngfile in the main folder of this repository as the Task Logo - Use the raw GitHub URL of this README.md file as the Task Markdown Readme URL
This will ensure proper visual identification and documentation for the task in the CloudTAK interface.
TAK.NZ provided Lambda ETLs are currently all written in NodeJS through the use of a AWS Lambda optimized Docker container. Documentation for the Dockerfile can be found in the AWS Help Center
npm installAdd a .env file in the root directory that gives the ETL script the necessary variables to communicate with a local ETL server.
When the ETL is deployed the ETL_API and ETL_LAYER variables will be provided by the Lambda Environment
{
"ETL_API": "http://localhost:5001",
"ETL_LAYER": "19"
}To run the task, ensure the local CloudTAK server is running and then run with typescript runtime or build to JS and run natively with node
ts-node task.ts
npm run build
cp .env dist/
node dist/task.js
TAK.NZ is distributed under AGPL-3.0-only Copyright (C) 2025 - Christian Elsen, Team Awareness Kit New Zealand (TAK.NZ) Copyright (C) 2023 - Public Safety TAK

