traccar
This policy information point can fetch device positions and geofences from a traccar server.
This policy information point allows interaction with Traccar servers. Traccar is a GPS tracking platform for monitoring the location of devices and managing geofences.
This library enables fetching device positions as device attributes and geofence geometries as fence attributes.
By integrating with the geographical function library (geo), this allows for policies that enforce geographical
access control and geofencing. This library also allows direct access to Traccar-specific data within its schema,
allowing to retrieve positions and geofences as GeoJSON objects for use with the operators of the geo
function library.
Traccar Server Configuration
This library uses email and password authentication.
A Traccar server configuration is a JSON object named traccarConfiguration containing the following attributes:
baseUrl: The base URL for constructing API requests. Example:https://demo.traccar.org.userName: The email address used to authenticate to the Traccar Server.password: The password to authenticate to the Traccar Server.pollingIntervalMs: The interval, in milliseconds, between polling the Traccar server endpoint. Defaults to 1000ms.repetitions: The maximum number of repeated requests. Defaults to0x7fffffffffffffffL.
** Example: **
{
"baseUrl": "https://demo.traccar.org",
"userName": "email@address.org",
"password": "password",
"pollingIntervalMs": 250
}
All attribute finders of this library offer a variation with or without the traccarConfiguration as a parameter.
If the parameter is not used in a policy, the attribute finder will default to the value of the environment variable
TRACCAR_CONFIG.
** Examples: **
-
subject.device.<traccar.position>will use the value of the environment variableTRACCAR_CONFIGto connect to the Traccar server. - Alternatively, a policy-specific set of settings can be used:
subject.device.<{ "baseUrl": "https://demo.traccar.org", "userName": "email@address.org", "password": "password" }> subject.device.<traccar.position(TRACCAR_SERVER_1)>will use the value of the environment variableTRACCAR_SERVER_1to connect to the Traccar server.
As a best practice, credentials should be stored in an environment variable and marked as secret to minimize the risk of exposing credentials.
server
Parameters of Attribute Finder
Name: traccarConfig [JSON]
Schema of Return Value
<traccar.server(traccarConfig)> is an environment attribute that retrieves server metadata from the
Traccar server endpoint.
It uses the settings provided in the traccarConfig parameter to connect to the server.
Parameters:
traccarConfig(Object): A JSON object containing the configuration to connect to the Traccar server.
Example:
<traccar.server({
"baseUrl": "https://demo.traccar.org",
"userName": "email@address.org",
"password": "password"
})>
This attribute may return a value like:
{
"id": 0,
"registration": true,
"readonly": true,
"deviceReadonly": true,
"limitCommands": true,
"map": "string",
"bingKey": "string",
"mapUrl": "string",
"poiLayer": "string",
"latitude": 0,
"longitude": 0,
"zoom": 0,
"version": "string",
"forceSettings": true,
"coordinateFormat": "string",
"openIdEnabled": true,
"openIdForce": true,
"attributes": {}
}
traccarGeofence
Input Entity of Attribute Finder
Name: geofenceEntityId [TEXT]
Schema of Return Value
geofenceEntityId.<traccar.traccarGeofence> is an attribute that retrieves metadata for a specific geofence from
the Traccar server using the provided geofence identifier. This method uses the environment variable
TRACCAR_CONFIG to retrieve the server connection configuration.
Parameters:
geofenceEntityId(Text): The identifier of the geofence in the Traccar system.
Example:
"12345".<traccar.traccarGeofence>
This may return a value like:
{
"id": 12345,
"name": "Geofence A",
"area": "Polygon",
"attributes": {}
}
devices
Parameters of Attribute Finder
Name: traccarConfig [JSON]
Schema of Return Value
<traccar.devices(traccarConfig)> is an environment attribute that retrieves a list of devices from the
Traccar server endpoint.
It uses the settings provided in the traccarConfig parameter to connect to the server.
Parameters:
traccarConfig(Object): A JSON object containing the configuration to connect to the Traccar server.
Example:
<traccar.devices({
"baseUrl": "https://demo.traccar.org",
"userName": "email@address.org",
"password": "password"
})>
This attribute may return a value like:
[
{
"id": 0,
"name": "string",
"uniqueId": "string",
"status": "string",
"disabled": true,
"lastUpdate": "2019-08-24T14:15:22Z",
"positionId": 0,
"groupId": 0,
"phone": "string",
"model": "string",
"contact": "string",
"category": "string",
"attributes": {}
}
]
geofenceGeometry
Input Entity of Attribute Finder
Name: geofenceEntityId [TEXT]
Parameters of Attribute Finder
Name: traccarConfig [JSON]
Schema of Return Value
geofenceEntityId.<traccar.geofenceGeometry(traccarConfig)> is an attribute that converts geofence metadata into
GeoJSON format for geometric representation. It uses the provided traccarConfig parameter to connect to the
Traccar server.
Parameters:
geofenceEntityId(Text): The identifier of the geofence in the Traccar system.traccarConfig(Object): A JSON object containing the configuration to connect to the Traccar server.
Example:
"12345".<traccar.geofenceGeometry({
"baseUrl": "https://demo.traccar.org",
"userName": "email@address.org",
"password": "password"
})>
This may return a value like:
{
"type": "Polygon",
"coordinates": [
[
[102.0, 2.0],
[103.0, 2.0],
[103.0, 3.0],
[102.0, 3.0],
[102.0, 2.0]
]
]
}
geofences
Parameters of Attribute Finder
Name: traccarConfig [JSON]
Schema of Return Value
<traccar.geofences(traccarConfig)> is an environment attribute that retrieves a list of all geofences from
the Traccar server. It uses the provided traccarConfig parameter to connect to the server.
Parameters:
traccarConfig(Object): A JSON object containing the configuration to connect to the Traccar server.
Example:
<traccar.geofences({
"baseUrl": "https://demo.traccar.org",
"userName": "email@address.org",
"password": "password"
})>
This may return a value like:
[
{
"id": 0,
"name": "string",
"description": "string",
"area": "string",
"attributes": {}
}
]
position
Input Entity of Attribute Finder
Name: deviceEntityId [TEXT]
Schema of Return Value
deviceEntityId.<traccar.position> is an attribute that converts the most recent position of a specific device
from the Traccar server into GeoJSON format. This method uses the environment variable TRACCAR_CONFIG
to retrieve the server connection configuration.
Parameters:
deviceEntityId(Text): The identifier of the device in the Traccar system.
Example:
"12345".<traccar.position>
This may return a value like:
{
"type": "Point",
"coordinates": [102.0, 0.5]
}
device
Input Entity of Attribute Finder
Name: deviceEntityId [TEXT]
Schema of Return Value
deviceEntityId.<traccar.device> is an attribute that fetches detailed metadata for a specific device from
the Traccar server.
The device is identified using the deviceEntityId parameter, which is the identifier of the device in Traccar,
not the device’s uniqueId in the database.
This method uses the environment variable TRACCAR_CONFIG to retrieve the server connection configuration.
Parameters:
deviceEntityId(Text): The identifier of the device in the Traccar system.
Example:
"12345".<traccar.device>
This may return a value like:
{
"id": 0,
"name": "string",
"uniqueId": "string",
"status": "string",
"disabled": true,
"lastUpdate": "2019-08-24T14:15:22Z",
"positionId": 0,
"groupId": 0,
"phone": "string",
"model": "string",
"contact": "string",
"category": "string",
"attributes": {}
}
traccarPosition
Input Entity of Attribute Finder
Name: deviceEntityId [TEXT]
Parameters of Attribute Finder
Name: traccarConfig [JSON]
Schema of Return Value
deviceEntityId.<traccar.traccarPosition(traccarConfig)> is an attribute that retrieves the most recent position of
a specific device from the Traccar server using the provided traccarConfig parameter.
Parameters:
deviceEntityId(Text): The identifier of the device in the Traccar system.traccarConfig(Object): A JSON object containing the configuration to connect to the Traccar server.
Example:
"12345".<traccar.traccarPosition({
"baseUrl": "https://demo.traccar.org",
"userName": "email@address.org",
"password": "password"
})>
This may return a value like:
{
"id": 0,
"protocol": "string",
"deviceId": 12345,
"serverTime": "2019-08-24T14:15:22Z",
"deviceTime": "2019-08-24T14:15:22Z",
"fixTime": "2019-08-24T14:15:22Z",
"valid": true,
"latitude": 0,
"longitude": 0,
"altitude": 0,
"speed": 0,
"course": 0,
"address": "string",
"attributes": {}
}