@stuartshay/otel-graphql-types 1.0.94 → 1.0.445
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +460 -26
- package/package.json +1 -1
- package/schema.graphql +857 -2
package/schema.graphql
CHANGED
|
@@ -122,6 +122,10 @@ type Location {
|
|
|
122
122
|
UTC timestamp when the record was inserted into the database
|
|
123
123
|
"""
|
|
124
124
|
created_at: String
|
|
125
|
+
"""
|
|
126
|
+
Short formatted address from reverse geocoding
|
|
127
|
+
"""
|
|
128
|
+
display_address: String
|
|
125
129
|
}
|
|
126
130
|
|
|
127
131
|
"""
|
|
@@ -188,10 +192,175 @@ type LocationDetail {
|
|
|
188
192
|
Original OwnTracks JSON payload as received from the MQTT broker
|
|
189
193
|
"""
|
|
190
194
|
raw_payload: JSON
|
|
195
|
+
"""
|
|
196
|
+
Full reverse-geocoded address components from Pelias
|
|
197
|
+
"""
|
|
198
|
+
address: GeocodedAddress
|
|
191
199
|
}
|
|
192
200
|
|
|
193
201
|
scalar JSON
|
|
194
202
|
|
|
203
|
+
# -------------------------------------------------------
|
|
204
|
+
# Geocoding
|
|
205
|
+
# -------------------------------------------------------
|
|
206
|
+
"""
|
|
207
|
+
Reverse-geocoded address components from Pelias.
|
|
208
|
+
"""
|
|
209
|
+
type GeocodedAddress {
|
|
210
|
+
"""
|
|
211
|
+
Full formatted address label from Pelias
|
|
212
|
+
"""
|
|
213
|
+
display_address: String
|
|
214
|
+
"""
|
|
215
|
+
Street name
|
|
216
|
+
"""
|
|
217
|
+
street: String
|
|
218
|
+
"""
|
|
219
|
+
House or building number
|
|
220
|
+
"""
|
|
221
|
+
housenumber: String
|
|
222
|
+
"""
|
|
223
|
+
Neighbourhood name
|
|
224
|
+
"""
|
|
225
|
+
neighbourhood: String
|
|
226
|
+
"""
|
|
227
|
+
City or town
|
|
228
|
+
"""
|
|
229
|
+
locality: String
|
|
230
|
+
"""
|
|
231
|
+
State or province
|
|
232
|
+
"""
|
|
233
|
+
region: String
|
|
234
|
+
"""
|
|
235
|
+
Country name
|
|
236
|
+
"""
|
|
237
|
+
country: String
|
|
238
|
+
"""
|
|
239
|
+
Postal or ZIP code
|
|
240
|
+
"""
|
|
241
|
+
postalcode: String
|
|
242
|
+
"""
|
|
243
|
+
Pelias confidence score (0-1)
|
|
244
|
+
"""
|
|
245
|
+
confidence: Float
|
|
246
|
+
"""
|
|
247
|
+
Geocoding status: success, no_coverage, error, pending
|
|
248
|
+
"""
|
|
249
|
+
status: String!
|
|
250
|
+
"""
|
|
251
|
+
UTC timestamp when geocoding was performed
|
|
252
|
+
"""
|
|
253
|
+
geocoded_at: String
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
"""
|
|
257
|
+
Coverage statistics for geocoded location records.
|
|
258
|
+
"""
|
|
259
|
+
type GeocodingStatus {
|
|
260
|
+
"""
|
|
261
|
+
Total number of OwnTracks location records
|
|
262
|
+
"""
|
|
263
|
+
total_locations: Int!
|
|
264
|
+
"""
|
|
265
|
+
Number of locations with a geocoded address (any status)
|
|
266
|
+
"""
|
|
267
|
+
geocoded: Int!
|
|
268
|
+
"""
|
|
269
|
+
Number of successfully geocoded locations
|
|
270
|
+
"""
|
|
271
|
+
success: Int!
|
|
272
|
+
"""
|
|
273
|
+
Number of locations awaiting geocoding
|
|
274
|
+
"""
|
|
275
|
+
pending: Int!
|
|
276
|
+
"""
|
|
277
|
+
Number of locations outside Pelias coverage area
|
|
278
|
+
"""
|
|
279
|
+
no_coverage: Int!
|
|
280
|
+
"""
|
|
281
|
+
Number of locations that failed geocoding
|
|
282
|
+
"""
|
|
283
|
+
errors: Int!
|
|
284
|
+
"""
|
|
285
|
+
Percentage of locations with a geocoded address
|
|
286
|
+
"""
|
|
287
|
+
coverage_percent: Float!
|
|
288
|
+
"""
|
|
289
|
+
Per-source breakdown of geocoding coverage (owntracks, garmin)
|
|
290
|
+
"""
|
|
291
|
+
by_source: GeocodingStatusBySource!
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
"""
|
|
295
|
+
Coverage statistics for a single geocoding source (owntracks or garmin).
|
|
296
|
+
"""
|
|
297
|
+
type GeocodingSourceStatus {
|
|
298
|
+
"""
|
|
299
|
+
Number of successfully geocoded records for this source
|
|
300
|
+
"""
|
|
301
|
+
success: Int!
|
|
302
|
+
"""
|
|
303
|
+
Number of records awaiting geocoding for this source
|
|
304
|
+
"""
|
|
305
|
+
pending: Int!
|
|
306
|
+
"""
|
|
307
|
+
Number of records outside Pelias coverage area
|
|
308
|
+
"""
|
|
309
|
+
no_coverage: Int!
|
|
310
|
+
"""
|
|
311
|
+
Number of records that failed geocoding
|
|
312
|
+
"""
|
|
313
|
+
errors: Int!
|
|
314
|
+
"""
|
|
315
|
+
Total number of geocoded_addresses rows for this source
|
|
316
|
+
"""
|
|
317
|
+
total: Int!
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
"""
|
|
321
|
+
Per-source breakdown of geocoding coverage.
|
|
322
|
+
"""
|
|
323
|
+
type GeocodingStatusBySource {
|
|
324
|
+
"""
|
|
325
|
+
Coverage stats for OwnTracks rows
|
|
326
|
+
"""
|
|
327
|
+
owntracks: GeocodingSourceStatus!
|
|
328
|
+
"""
|
|
329
|
+
Coverage stats for Garmin rows
|
|
330
|
+
"""
|
|
331
|
+
garmin: GeocodingSourceStatus!
|
|
332
|
+
"""
|
|
333
|
+
Total number of Garmin activities (denominator for activity-level coverage)
|
|
334
|
+
"""
|
|
335
|
+
garmin_activities_total: Int!
|
|
336
|
+
"""
|
|
337
|
+
Number of Garmin activities that have at least one address row
|
|
338
|
+
"""
|
|
339
|
+
garmin_activities_geocoded: Int!
|
|
340
|
+
"""
|
|
341
|
+
Percentage of Garmin activities with at least one geocoded address
|
|
342
|
+
"""
|
|
343
|
+
garmin_coverage_percent: Float!
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
"""
|
|
347
|
+
Result of triggering a batch geocoding operation.
|
|
348
|
+
"""
|
|
349
|
+
type GeocodingTriggerResult {
|
|
350
|
+
"""
|
|
351
|
+
Number of records processed in this batch
|
|
352
|
+
"""
|
|
353
|
+
processed: Int!
|
|
354
|
+
"""
|
|
355
|
+
Number of records still awaiting geocoding
|
|
356
|
+
"""
|
|
357
|
+
remaining: Int!
|
|
358
|
+
"""
|
|
359
|
+
Number of records skipped via proximity deduplication
|
|
360
|
+
"""
|
|
361
|
+
skipped_dedup: Int!
|
|
362
|
+
}
|
|
363
|
+
|
|
195
364
|
"""
|
|
196
365
|
Paginated list of OwnTracks location records.
|
|
197
366
|
"""
|
|
@@ -242,9 +411,49 @@ type LocationCount {
|
|
|
242
411
|
device_id: String
|
|
243
412
|
}
|
|
244
413
|
|
|
414
|
+
"""
|
|
415
|
+
Earliest and latest timestamps in the locations table.
|
|
416
|
+
"""
|
|
417
|
+
type LocationDateRange {
|
|
418
|
+
"""
|
|
419
|
+
Earliest location timestamp (ISO 8601)
|
|
420
|
+
"""
|
|
421
|
+
min_date: DateTime!
|
|
422
|
+
"""
|
|
423
|
+
Latest location timestamp (ISO 8601)
|
|
424
|
+
"""
|
|
425
|
+
max_date: DateTime!
|
|
426
|
+
}
|
|
427
|
+
|
|
245
428
|
# -------------------------------------------------------
|
|
246
429
|
# Garmin
|
|
247
430
|
# -------------------------------------------------------
|
|
431
|
+
"""
|
|
432
|
+
Recording device metadata captured from a Garmin activity's FIT file.
|
|
433
|
+
"""
|
|
434
|
+
type GarminDevice {
|
|
435
|
+
"""
|
|
436
|
+
Recording device serial number
|
|
437
|
+
"""
|
|
438
|
+
device_id: Float
|
|
439
|
+
"""
|
|
440
|
+
Device manufacturer (e.g. garmin)
|
|
441
|
+
"""
|
|
442
|
+
manufacturer: String
|
|
443
|
+
"""
|
|
444
|
+
Raw Garmin product enum id from the FIT file (e.g. 4061)
|
|
445
|
+
"""
|
|
446
|
+
garmin_product: Int
|
|
447
|
+
"""
|
|
448
|
+
Friendly device model name (e.g. Edge 540 Solar)
|
|
449
|
+
"""
|
|
450
|
+
model: String
|
|
451
|
+
"""
|
|
452
|
+
Device firmware/software version (e.g. 31.30)
|
|
453
|
+
"""
|
|
454
|
+
software_version: String
|
|
455
|
+
}
|
|
456
|
+
|
|
248
457
|
"""
|
|
249
458
|
Summary of a Garmin Connect activity parsed from a FIT file.
|
|
250
459
|
"""
|
|
@@ -286,6 +495,62 @@ type GarminActivity {
|
|
|
286
495
|
"""
|
|
287
496
|
max_heart_rate: Int
|
|
288
497
|
"""
|
|
498
|
+
Whether this activity has usable heart-rate data in summary or track points
|
|
499
|
+
"""
|
|
500
|
+
hr_available: Boolean!
|
|
501
|
+
"""
|
|
502
|
+
Minimum heart rate in beats per minute
|
|
503
|
+
"""
|
|
504
|
+
min_heart_rate: Int
|
|
505
|
+
"""
|
|
506
|
+
Aerobic training effect score
|
|
507
|
+
"""
|
|
508
|
+
aerobic_training_effect: Float
|
|
509
|
+
"""
|
|
510
|
+
Anaerobic training effect score
|
|
511
|
+
"""
|
|
512
|
+
anaerobic_training_effect: Float
|
|
513
|
+
"""
|
|
514
|
+
Exercise load score
|
|
515
|
+
"""
|
|
516
|
+
exercise_load: Int
|
|
517
|
+
"""
|
|
518
|
+
Average respiration rate in breaths per minute
|
|
519
|
+
"""
|
|
520
|
+
avg_respiration_rate: Int
|
|
521
|
+
"""
|
|
522
|
+
Minimum respiration rate in breaths per minute
|
|
523
|
+
"""
|
|
524
|
+
min_respiration_rate: Int
|
|
525
|
+
"""
|
|
526
|
+
Maximum respiration rate in breaths per minute
|
|
527
|
+
"""
|
|
528
|
+
max_respiration_rate: Int
|
|
529
|
+
"""
|
|
530
|
+
Estimated sweat loss in millilitres
|
|
531
|
+
"""
|
|
532
|
+
sweat_loss_ml: Int
|
|
533
|
+
"""
|
|
534
|
+
Moderate intensity minutes
|
|
535
|
+
"""
|
|
536
|
+
moderate_intensity_minutes: Int
|
|
537
|
+
"""
|
|
538
|
+
Vigorous intensity minutes
|
|
539
|
+
"""
|
|
540
|
+
vigorous_intensity_minutes: Int
|
|
541
|
+
"""
|
|
542
|
+
Total intensity minutes
|
|
543
|
+
"""
|
|
544
|
+
total_intensity_minutes: Int
|
|
545
|
+
"""
|
|
546
|
+
Distance over paved surfaces in kilometres
|
|
547
|
+
"""
|
|
548
|
+
paved_distance_km: Float
|
|
549
|
+
"""
|
|
550
|
+
Distance over unpaved surfaces in kilometres
|
|
551
|
+
"""
|
|
552
|
+
unpaved_distance_km: Float
|
|
553
|
+
"""
|
|
289
554
|
Average cadence in RPM
|
|
290
555
|
"""
|
|
291
556
|
avg_cadence: Int
|
|
@@ -294,6 +559,10 @@ type GarminActivity {
|
|
|
294
559
|
"""
|
|
295
560
|
max_cadence: Int
|
|
296
561
|
"""
|
|
562
|
+
Total activity strokes
|
|
563
|
+
"""
|
|
564
|
+
total_strokes: Int
|
|
565
|
+
"""
|
|
297
566
|
Total calories burned
|
|
298
567
|
"""
|
|
299
568
|
calories: Int
|
|
@@ -326,6 +595,10 @@ type GarminActivity {
|
|
|
326
595
|
"""
|
|
327
596
|
device_manufacturer: String
|
|
328
597
|
"""
|
|
598
|
+
Recording device metadata (manufacturer, model, firmware)
|
|
599
|
+
"""
|
|
600
|
+
device: GarminDevice
|
|
601
|
+
"""
|
|
329
602
|
Average ambient temperature in degrees C
|
|
330
603
|
"""
|
|
331
604
|
avg_temperature_c: Int
|
|
@@ -381,6 +654,248 @@ type GarminActivityConnection {
|
|
|
381
654
|
offset: Int!
|
|
382
655
|
}
|
|
383
656
|
|
|
657
|
+
"""
|
|
658
|
+
Earliest and latest timestamps in the Garmin activities table.
|
|
659
|
+
"""
|
|
660
|
+
type GarminDateRange {
|
|
661
|
+
"""
|
|
662
|
+
Earliest Garmin activity timestamp (ISO 8601)
|
|
663
|
+
"""
|
|
664
|
+
min_date: DateTime!
|
|
665
|
+
"""
|
|
666
|
+
Latest Garmin activity timestamp (ISO 8601)
|
|
667
|
+
"""
|
|
668
|
+
max_date: DateTime!
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
"""
|
|
672
|
+
Garmin-native ClimbPro typed split for an activity.
|
|
673
|
+
"""
|
|
674
|
+
type GarminActivityClimb {
|
|
675
|
+
"""
|
|
676
|
+
Unique climb row identifier
|
|
677
|
+
"""
|
|
678
|
+
id: Float!
|
|
679
|
+
"""
|
|
680
|
+
Parent Garmin activity identifier
|
|
681
|
+
"""
|
|
682
|
+
activity_id: String!
|
|
683
|
+
"""
|
|
684
|
+
Zero-based Garmin typed split order
|
|
685
|
+
"""
|
|
686
|
+
source_split_index: Int!
|
|
687
|
+
"""
|
|
688
|
+
Garmin message index
|
|
689
|
+
"""
|
|
690
|
+
message_index: Int
|
|
691
|
+
"""
|
|
692
|
+
Garmin split type label when provided
|
|
693
|
+
"""
|
|
694
|
+
split_type: String
|
|
695
|
+
"""
|
|
696
|
+
Garmin ClimbPro typed split type
|
|
697
|
+
"""
|
|
698
|
+
climb_type: String
|
|
699
|
+
"""
|
|
700
|
+
UTC climb start time
|
|
701
|
+
"""
|
|
702
|
+
start_time: String
|
|
703
|
+
"""
|
|
704
|
+
UTC climb end time
|
|
705
|
+
"""
|
|
706
|
+
end_time: String
|
|
707
|
+
"""
|
|
708
|
+
Local climb start time from Garmin
|
|
709
|
+
"""
|
|
710
|
+
start_time_local: String
|
|
711
|
+
"""
|
|
712
|
+
Climb duration in seconds
|
|
713
|
+
"""
|
|
714
|
+
duration_seconds: Float
|
|
715
|
+
"""
|
|
716
|
+
Elapsed climb duration in seconds
|
|
717
|
+
"""
|
|
718
|
+
elapsed_duration_seconds: Float
|
|
719
|
+
"""
|
|
720
|
+
Moving climb duration in seconds
|
|
721
|
+
"""
|
|
722
|
+
moving_duration_seconds: Float
|
|
723
|
+
"""
|
|
724
|
+
Climb distance in meters
|
|
725
|
+
"""
|
|
726
|
+
distance_meters: Float
|
|
727
|
+
"""
|
|
728
|
+
Climb elevation gain in meters
|
|
729
|
+
"""
|
|
730
|
+
elevation_gain_meters: Float
|
|
731
|
+
"""
|
|
732
|
+
Climb elevation loss in meters
|
|
733
|
+
"""
|
|
734
|
+
elevation_loss_meters: Float
|
|
735
|
+
"""
|
|
736
|
+
Climb start elevation in meters
|
|
737
|
+
"""
|
|
738
|
+
start_elevation_meters: Float
|
|
739
|
+
"""
|
|
740
|
+
Average climb grade percent
|
|
741
|
+
"""
|
|
742
|
+
average_grade_percent: Float
|
|
743
|
+
"""
|
|
744
|
+
Maximum climb grade percent
|
|
745
|
+
"""
|
|
746
|
+
max_grade_percent: Float
|
|
747
|
+
"""
|
|
748
|
+
Average speed in meters per second
|
|
749
|
+
"""
|
|
750
|
+
average_speed_mps: Float
|
|
751
|
+
"""
|
|
752
|
+
Average moving speed in meters per second
|
|
753
|
+
"""
|
|
754
|
+
average_moving_speed_mps: Float
|
|
755
|
+
"""
|
|
756
|
+
Maximum speed in meters per second
|
|
757
|
+
"""
|
|
758
|
+
max_speed_mps: Float
|
|
759
|
+
"""
|
|
760
|
+
Average vertical speed in meters per second
|
|
761
|
+
"""
|
|
762
|
+
average_vertical_speed_mps: Float
|
|
763
|
+
"""
|
|
764
|
+
Average elapsed vertical speed in meters per second
|
|
765
|
+
"""
|
|
766
|
+
average_elapsed_vertical_speed_mps: Float
|
|
767
|
+
"""
|
|
768
|
+
Climb start latitude
|
|
769
|
+
"""
|
|
770
|
+
start_latitude: Float
|
|
771
|
+
"""
|
|
772
|
+
Climb start longitude
|
|
773
|
+
"""
|
|
774
|
+
start_longitude: Float
|
|
775
|
+
"""
|
|
776
|
+
Climb end latitude
|
|
777
|
+
"""
|
|
778
|
+
end_latitude: Float
|
|
779
|
+
"""
|
|
780
|
+
Climb end longitude
|
|
781
|
+
"""
|
|
782
|
+
end_longitude: Float
|
|
783
|
+
"""
|
|
784
|
+
Garmin ClimbPro difficulty
|
|
785
|
+
"""
|
|
786
|
+
climb_pro_difficulty: String
|
|
787
|
+
"""
|
|
788
|
+
Calories recorded for this climb
|
|
789
|
+
"""
|
|
790
|
+
calories: Float
|
|
791
|
+
"""
|
|
792
|
+
BMR calories recorded for this climb
|
|
793
|
+
"""
|
|
794
|
+
bmr_calories: Float
|
|
795
|
+
"""
|
|
796
|
+
Average temperature in degrees C
|
|
797
|
+
"""
|
|
798
|
+
average_temperature_c: Float
|
|
799
|
+
"""
|
|
800
|
+
Minimum temperature in degrees C
|
|
801
|
+
"""
|
|
802
|
+
min_temperature_c: Float
|
|
803
|
+
"""
|
|
804
|
+
Maximum temperature in degrees C
|
|
805
|
+
"""
|
|
806
|
+
max_temperature_c: Float
|
|
807
|
+
"""
|
|
808
|
+
UTC timestamp when the row was inserted
|
|
809
|
+
"""
|
|
810
|
+
created_at: String
|
|
811
|
+
"""
|
|
812
|
+
UTC timestamp when the row was last updated
|
|
813
|
+
"""
|
|
814
|
+
updated_at: String
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
"""
|
|
818
|
+
Garmin-native or derived activity lap row.
|
|
819
|
+
"""
|
|
820
|
+
type GarminActivityLap {
|
|
821
|
+
"""
|
|
822
|
+
Unique lap row identifier
|
|
823
|
+
"""
|
|
824
|
+
id: Float!
|
|
825
|
+
"""
|
|
826
|
+
Parent Garmin activity identifier
|
|
827
|
+
"""
|
|
828
|
+
activity_id: String!
|
|
829
|
+
"""
|
|
830
|
+
One-based lap order within the activity
|
|
831
|
+
"""
|
|
832
|
+
lap_index: Int!
|
|
833
|
+
"""
|
|
834
|
+
UTC lap start time
|
|
835
|
+
"""
|
|
836
|
+
start_time: String
|
|
837
|
+
"""
|
|
838
|
+
UTC lap end time
|
|
839
|
+
"""
|
|
840
|
+
end_time: String
|
|
841
|
+
"""
|
|
842
|
+
Lap timer duration in seconds
|
|
843
|
+
"""
|
|
844
|
+
duration_seconds: Float
|
|
845
|
+
"""
|
|
846
|
+
Lap elapsed duration in seconds
|
|
847
|
+
"""
|
|
848
|
+
elapsed_duration_seconds: Float
|
|
849
|
+
"""
|
|
850
|
+
Lap moving duration in seconds
|
|
851
|
+
"""
|
|
852
|
+
moving_duration_seconds: Float
|
|
853
|
+
"""
|
|
854
|
+
Lap distance in meters
|
|
855
|
+
"""
|
|
856
|
+
distance_meters: Float
|
|
857
|
+
"""
|
|
858
|
+
Lap paved distance in meters
|
|
859
|
+
"""
|
|
860
|
+
paved_distance_meters: Float
|
|
861
|
+
"""
|
|
862
|
+
Lap unpaved distance in meters
|
|
863
|
+
"""
|
|
864
|
+
unpaved_distance_meters: Float
|
|
865
|
+
"""
|
|
866
|
+
Average lap speed in meters per second
|
|
867
|
+
"""
|
|
868
|
+
avg_speed_mps: Float
|
|
869
|
+
"""
|
|
870
|
+
Average lap heart rate in bpm
|
|
871
|
+
"""
|
|
872
|
+
avg_heart_rate: Int
|
|
873
|
+
"""
|
|
874
|
+
Maximum lap heart rate in bpm
|
|
875
|
+
"""
|
|
876
|
+
max_heart_rate: Int
|
|
877
|
+
"""
|
|
878
|
+
Lap elevation gain in meters
|
|
879
|
+
"""
|
|
880
|
+
total_ascent_meters: Float
|
|
881
|
+
"""
|
|
882
|
+
Lap elevation loss in meters
|
|
883
|
+
"""
|
|
884
|
+
total_descent_meters: Float
|
|
885
|
+
"""
|
|
886
|
+
Calories recorded for this lap
|
|
887
|
+
"""
|
|
888
|
+
calories: Float
|
|
889
|
+
"""
|
|
890
|
+
UTC timestamp when the row was inserted
|
|
891
|
+
"""
|
|
892
|
+
created_at: String
|
|
893
|
+
"""
|
|
894
|
+
UTC timestamp when the row was last updated
|
|
895
|
+
"""
|
|
896
|
+
updated_at: String
|
|
897
|
+
}
|
|
898
|
+
|
|
384
899
|
"""
|
|
385
900
|
Individual GPS track point within a Garmin activity.
|
|
386
901
|
"""
|
|
@@ -422,6 +937,14 @@ type GarminTrackPoint {
|
|
|
422
937
|
"""
|
|
423
938
|
heart_rate: Int
|
|
424
939
|
"""
|
|
940
|
+
Heart-rate zone index (1-5)
|
|
941
|
+
"""
|
|
942
|
+
hr_zone: Int
|
|
943
|
+
"""
|
|
944
|
+
Respiration rate in breaths per minute
|
|
945
|
+
"""
|
|
946
|
+
respiration_rate: Int
|
|
947
|
+
"""
|
|
425
948
|
Pedal/step cadence in RPM
|
|
426
949
|
"""
|
|
427
950
|
cadence: Int
|
|
@@ -430,9 +953,149 @@ type GarminTrackPoint {
|
|
|
430
953
|
"""
|
|
431
954
|
temperature_c: Float
|
|
432
955
|
"""
|
|
956
|
+
Road or terrain type
|
|
957
|
+
"""
|
|
958
|
+
surface_type: String
|
|
959
|
+
"""
|
|
960
|
+
Effort classification label
|
|
961
|
+
"""
|
|
962
|
+
effort_level: String
|
|
963
|
+
"""
|
|
433
964
|
UTC timestamp when the record was inserted
|
|
434
965
|
"""
|
|
435
966
|
created_at: String
|
|
967
|
+
"""
|
|
968
|
+
Compact reverse-geocoded address summary, when geocoded
|
|
969
|
+
"""
|
|
970
|
+
address: GeocodedAddressSummary
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
"""
|
|
974
|
+
Compact reverse-geocoded address summary embedded in track-point payloads.
|
|
975
|
+
"""
|
|
976
|
+
type GeocodedAddressSummary {
|
|
977
|
+
"""
|
|
978
|
+
Full formatted address label from Pelias
|
|
979
|
+
"""
|
|
980
|
+
display_address: String
|
|
981
|
+
"""
|
|
982
|
+
Street name
|
|
983
|
+
"""
|
|
984
|
+
street: String
|
|
985
|
+
"""
|
|
986
|
+
House or building number
|
|
987
|
+
"""
|
|
988
|
+
housenumber: String
|
|
989
|
+
"""
|
|
990
|
+
Neighbourhood name
|
|
991
|
+
"""
|
|
992
|
+
neighbourhood: String
|
|
993
|
+
"""
|
|
994
|
+
City or town
|
|
995
|
+
"""
|
|
996
|
+
locality: String
|
|
997
|
+
"""
|
|
998
|
+
State or province
|
|
999
|
+
"""
|
|
1000
|
+
region: String
|
|
1001
|
+
"""
|
|
1002
|
+
Country name
|
|
1003
|
+
"""
|
|
1004
|
+
country: String
|
|
1005
|
+
"""
|
|
1006
|
+
Postal or ZIP code
|
|
1007
|
+
"""
|
|
1008
|
+
postalcode: String
|
|
1009
|
+
"""
|
|
1010
|
+
Pelias confidence score (0-1)
|
|
1011
|
+
"""
|
|
1012
|
+
confidence: Float
|
|
1013
|
+
"""
|
|
1014
|
+
Role of this waypoint within a Garmin activity (start, end, waypoint). Null for OwnTracks records.
|
|
1015
|
+
"""
|
|
1016
|
+
waypoint_kind: String
|
|
1017
|
+
"""
|
|
1018
|
+
Geocoding status: success, no_coverage, error, pending
|
|
1019
|
+
"""
|
|
1020
|
+
status: String!
|
|
1021
|
+
"""
|
|
1022
|
+
UTC timestamp when geocoding was performed
|
|
1023
|
+
"""
|
|
1024
|
+
geocoded_at: String
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
"""
|
|
1028
|
+
Full reverse-geocoded address attached to a Garmin activity waypoint.
|
|
1029
|
+
"""
|
|
1030
|
+
type GarminActivityAddress {
|
|
1031
|
+
"""
|
|
1032
|
+
garmin_track_points.id this address was geocoded from
|
|
1033
|
+
"""
|
|
1034
|
+
track_point_id: Int!
|
|
1035
|
+
"""
|
|
1036
|
+
Parent Garmin activity identifier
|
|
1037
|
+
"""
|
|
1038
|
+
activity_id: String!
|
|
1039
|
+
"""
|
|
1040
|
+
Role of this waypoint within the activity: start, end, or waypoint
|
|
1041
|
+
"""
|
|
1042
|
+
waypoint_kind: String!
|
|
1043
|
+
"""
|
|
1044
|
+
UTC timestamp of the track point this address was derived from
|
|
1045
|
+
"""
|
|
1046
|
+
timestamp: DateTime!
|
|
1047
|
+
"""
|
|
1048
|
+
GPS latitude in decimal degrees (WGS 84)
|
|
1049
|
+
"""
|
|
1050
|
+
latitude: Float!
|
|
1051
|
+
"""
|
|
1052
|
+
GPS longitude in decimal degrees (WGS 84)
|
|
1053
|
+
"""
|
|
1054
|
+
longitude: Float!
|
|
1055
|
+
"""
|
|
1056
|
+
Full formatted address label from Pelias
|
|
1057
|
+
"""
|
|
1058
|
+
display_address: String
|
|
1059
|
+
"""
|
|
1060
|
+
Street name
|
|
1061
|
+
"""
|
|
1062
|
+
street: String
|
|
1063
|
+
"""
|
|
1064
|
+
House or building number
|
|
1065
|
+
"""
|
|
1066
|
+
housenumber: String
|
|
1067
|
+
"""
|
|
1068
|
+
Neighbourhood name
|
|
1069
|
+
"""
|
|
1070
|
+
neighbourhood: String
|
|
1071
|
+
"""
|
|
1072
|
+
City or town
|
|
1073
|
+
"""
|
|
1074
|
+
locality: String
|
|
1075
|
+
"""
|
|
1076
|
+
State or province
|
|
1077
|
+
"""
|
|
1078
|
+
region: String
|
|
1079
|
+
"""
|
|
1080
|
+
Country name
|
|
1081
|
+
"""
|
|
1082
|
+
country: String
|
|
1083
|
+
"""
|
|
1084
|
+
Postal or ZIP code
|
|
1085
|
+
"""
|
|
1086
|
+
postalcode: String
|
|
1087
|
+
"""
|
|
1088
|
+
Pelias confidence score (0-1)
|
|
1089
|
+
"""
|
|
1090
|
+
confidence: Float
|
|
1091
|
+
"""
|
|
1092
|
+
Geocoding status: success, no_coverage, error, pending
|
|
1093
|
+
"""
|
|
1094
|
+
status: String!
|
|
1095
|
+
"""
|
|
1096
|
+
UTC timestamp when geocoding was performed
|
|
1097
|
+
"""
|
|
1098
|
+
geocoded_at: String
|
|
436
1099
|
}
|
|
437
1100
|
|
|
438
1101
|
"""
|
|
@@ -471,6 +1134,20 @@ type SportInfo {
|
|
|
471
1134
|
activity_count: Int!
|
|
472
1135
|
}
|
|
473
1136
|
|
|
1137
|
+
"""
|
|
1138
|
+
Garmin activity count grouped by recording device model.
|
|
1139
|
+
"""
|
|
1140
|
+
type GarminDeviceCount {
|
|
1141
|
+
"""
|
|
1142
|
+
Device model label, or Manual when an activity has no recording device.
|
|
1143
|
+
"""
|
|
1144
|
+
label: String!
|
|
1145
|
+
"""
|
|
1146
|
+
Number of activities for this device label.
|
|
1147
|
+
"""
|
|
1148
|
+
activity_count: Int!
|
|
1149
|
+
}
|
|
1150
|
+
|
|
474
1151
|
"""
|
|
475
1152
|
Lightweight track point optimised for time-series chart rendering.
|
|
476
1153
|
"""
|
|
@@ -496,6 +1173,14 @@ type GarminChartPoint {
|
|
|
496
1173
|
"""
|
|
497
1174
|
heart_rate: Int
|
|
498
1175
|
"""
|
|
1176
|
+
Heart-rate zone index (1-5)
|
|
1177
|
+
"""
|
|
1178
|
+
hr_zone: Int
|
|
1179
|
+
"""
|
|
1180
|
+
Respiration rate in breaths per minute
|
|
1181
|
+
"""
|
|
1182
|
+
respiration_rate: Int
|
|
1183
|
+
"""
|
|
499
1184
|
Pedal/step cadence in RPM
|
|
500
1185
|
"""
|
|
501
1186
|
cadence: Int
|
|
@@ -513,6 +1198,36 @@ type GarminChartPoint {
|
|
|
513
1198
|
longitude: Float!
|
|
514
1199
|
}
|
|
515
1200
|
|
|
1201
|
+
"""
|
|
1202
|
+
Aggregated Garmin activity totals for a single time bucket (week, month, or year).
|
|
1203
|
+
"""
|
|
1204
|
+
type GarminActivityTotal {
|
|
1205
|
+
"""
|
|
1206
|
+
Start date of the period bucket (DATE_TRUNC of week/month/year)
|
|
1207
|
+
"""
|
|
1208
|
+
period_start: String!
|
|
1209
|
+
"""
|
|
1210
|
+
Number of activities in the period
|
|
1211
|
+
"""
|
|
1212
|
+
activity_count: Int!
|
|
1213
|
+
"""
|
|
1214
|
+
Sum of distance in kilometres
|
|
1215
|
+
"""
|
|
1216
|
+
total_distance_km: Float
|
|
1217
|
+
"""
|
|
1218
|
+
Sum of active duration in seconds (excludes pauses)
|
|
1219
|
+
"""
|
|
1220
|
+
total_duration_seconds: Int
|
|
1221
|
+
"""
|
|
1222
|
+
Sum of elevation gain in meters
|
|
1223
|
+
"""
|
|
1224
|
+
total_ascent_m: Int
|
|
1225
|
+
"""
|
|
1226
|
+
Sum of calories burned
|
|
1227
|
+
"""
|
|
1228
|
+
total_calories: Int
|
|
1229
|
+
}
|
|
1230
|
+
|
|
516
1231
|
# -------------------------------------------------------
|
|
517
1232
|
# Unified GPS
|
|
518
1233
|
# -------------------------------------------------------
|
|
@@ -638,6 +1353,42 @@ type DailyActivitySummary {
|
|
|
638
1353
|
total_calories: Int
|
|
639
1354
|
}
|
|
640
1355
|
|
|
1356
|
+
"""
|
|
1357
|
+
Paginated list of daily activity summaries.
|
|
1358
|
+
"""
|
|
1359
|
+
type DailySummaryConnection {
|
|
1360
|
+
"""
|
|
1361
|
+
List of daily activity summary items in the current page
|
|
1362
|
+
"""
|
|
1363
|
+
items: [DailyActivitySummary!]!
|
|
1364
|
+
"""
|
|
1365
|
+
Total number of items matching the query
|
|
1366
|
+
"""
|
|
1367
|
+
total: Int!
|
|
1368
|
+
"""
|
|
1369
|
+
Maximum number of items per page
|
|
1370
|
+
"""
|
|
1371
|
+
limit: Int!
|
|
1372
|
+
"""
|
|
1373
|
+
Number of items skipped from the start
|
|
1374
|
+
"""
|
|
1375
|
+
offset: Int!
|
|
1376
|
+
}
|
|
1377
|
+
|
|
1378
|
+
"""
|
|
1379
|
+
Earliest and latest activity dates available in the daily activity summary view.
|
|
1380
|
+
"""
|
|
1381
|
+
type DailySummaryDateRange {
|
|
1382
|
+
"""
|
|
1383
|
+
Earliest activity date with daily summary data (YYYY-MM-DD)
|
|
1384
|
+
"""
|
|
1385
|
+
min_date: String!
|
|
1386
|
+
"""
|
|
1387
|
+
Latest activity date with daily summary data (YYYY-MM-DD)
|
|
1388
|
+
"""
|
|
1389
|
+
max_date: String!
|
|
1390
|
+
}
|
|
1391
|
+
|
|
641
1392
|
# -------------------------------------------------------
|
|
642
1393
|
# Reference Locations
|
|
643
1394
|
# -------------------------------------------------------
|
|
@@ -893,7 +1644,17 @@ type Query {
|
|
|
893
1644
|
device_id: String
|
|
894
1645
|
): LocationCount!
|
|
895
1646
|
|
|
1647
|
+
"""
|
|
1648
|
+
Get the earliest and latest location timestamps.
|
|
1649
|
+
"""
|
|
1650
|
+
locationDateRange: LocationDateRange!
|
|
1651
|
+
|
|
896
1652
|
# Garmin
|
|
1653
|
+
"""
|
|
1654
|
+
Get the earliest and latest Garmin activity timestamps.
|
|
1655
|
+
"""
|
|
1656
|
+
garminDateRange: GarminDateRange!
|
|
1657
|
+
|
|
897
1658
|
"""
|
|
898
1659
|
Retrieve a paginated list of Garmin activities.
|
|
899
1660
|
"""
|
|
@@ -973,6 +1734,11 @@ type Query {
|
|
|
973
1734
|
"""
|
|
974
1735
|
garminSports: [SportInfo!]!
|
|
975
1736
|
|
|
1737
|
+
"""
|
|
1738
|
+
List Garmin recording device labels with activity counts.
|
|
1739
|
+
"""
|
|
1740
|
+
garminDeviceCounts: [GarminDeviceCount!]!
|
|
1741
|
+
|
|
976
1742
|
"""
|
|
977
1743
|
Retrieve chart-optimised track points for a Garmin activity.
|
|
978
1744
|
"""
|
|
@@ -983,6 +1749,58 @@ type Query {
|
|
|
983
1749
|
activity_id: String!
|
|
984
1750
|
): [GarminChartPoint!]!
|
|
985
1751
|
|
|
1752
|
+
"""
|
|
1753
|
+
Retrieve Garmin-native ClimbPro typed splits for a Garmin activity.
|
|
1754
|
+
"""
|
|
1755
|
+
garminActivityClimbs(
|
|
1756
|
+
"""
|
|
1757
|
+
Garmin Connect activity identifier
|
|
1758
|
+
"""
|
|
1759
|
+
activity_id: String!
|
|
1760
|
+
): [GarminActivityClimb!]!
|
|
1761
|
+
|
|
1762
|
+
"""
|
|
1763
|
+
Retrieve Garmin-native or derived laps for a Garmin activity.
|
|
1764
|
+
"""
|
|
1765
|
+
garminActivityLaps(
|
|
1766
|
+
"""
|
|
1767
|
+
Garmin Connect activity identifier
|
|
1768
|
+
"""
|
|
1769
|
+
activity_id: String!
|
|
1770
|
+
): [GarminActivityLap!]!
|
|
1771
|
+
|
|
1772
|
+
"""
|
|
1773
|
+
Retrieve all reverse-geocoded addresses for a Garmin activity (start, mid-route waypoints, and end).
|
|
1774
|
+
"""
|
|
1775
|
+
garminActivityAddresses(
|
|
1776
|
+
"""
|
|
1777
|
+
Garmin Connect activity identifier
|
|
1778
|
+
"""
|
|
1779
|
+
activity_id: String!
|
|
1780
|
+
): [GarminActivityAddress!]!
|
|
1781
|
+
|
|
1782
|
+
"""
|
|
1783
|
+
Aggregate Garmin activity totals grouped by week, month, or year.
|
|
1784
|
+
"""
|
|
1785
|
+
garminActivityTotals(
|
|
1786
|
+
"""
|
|
1787
|
+
Aggregation period: 'week', 'month', or 'year'
|
|
1788
|
+
"""
|
|
1789
|
+
period: String!
|
|
1790
|
+
"""
|
|
1791
|
+
Filter by sport (e.g. cycling, running)
|
|
1792
|
+
"""
|
|
1793
|
+
sport: String
|
|
1794
|
+
"""
|
|
1795
|
+
Inclusive lower bound on activity start time (YYYY-MM-DD)
|
|
1796
|
+
"""
|
|
1797
|
+
date_from: String
|
|
1798
|
+
"""
|
|
1799
|
+
Inclusive upper bound on activity start time (YYYY-MM-DD)
|
|
1800
|
+
"""
|
|
1801
|
+
date_to: String
|
|
1802
|
+
): [GarminActivityTotal!]!
|
|
1803
|
+
|
|
986
1804
|
# Unified GPS
|
|
987
1805
|
"""
|
|
988
1806
|
Retrieve a paginated list of unified GPS points from all sources.
|
|
@@ -1012,6 +1830,14 @@ type Query {
|
|
|
1012
1830
|
Sort direction
|
|
1013
1831
|
"""
|
|
1014
1832
|
order: SortOrder
|
|
1833
|
+
"""
|
|
1834
|
+
Exclude stationary points where speed is zero
|
|
1835
|
+
"""
|
|
1836
|
+
exclude_stationary: Boolean
|
|
1837
|
+
"""
|
|
1838
|
+
Remove points with duplicate coordinates (rounded to ~11m precision)
|
|
1839
|
+
"""
|
|
1840
|
+
deduplicate: Boolean
|
|
1015
1841
|
): UnifiedGpsConnection!
|
|
1016
1842
|
|
|
1017
1843
|
"""
|
|
@@ -1027,10 +1853,19 @@ type Query {
|
|
|
1027
1853
|
"""
|
|
1028
1854
|
date_to: String
|
|
1029
1855
|
"""
|
|
1030
|
-
Maximum number of days to return
|
|
1856
|
+
Maximum number of days to return per page
|
|
1031
1857
|
"""
|
|
1032
1858
|
limit: Int
|
|
1033
|
-
|
|
1859
|
+
"""
|
|
1860
|
+
Number of items to skip for pagination
|
|
1861
|
+
"""
|
|
1862
|
+
offset: Int
|
|
1863
|
+
): DailySummaryConnection!
|
|
1864
|
+
|
|
1865
|
+
"""
|
|
1866
|
+
Get the earliest and latest activity dates available in the daily activity summary view.
|
|
1867
|
+
"""
|
|
1868
|
+
dailySummaryDateRange: DailySummaryDateRange!
|
|
1034
1869
|
|
|
1035
1870
|
# Reference Locations
|
|
1036
1871
|
"""
|
|
@@ -1113,6 +1948,12 @@ type Query {
|
|
|
1113
1948
|
"""
|
|
1114
1949
|
limit: Int
|
|
1115
1950
|
): WithinReferenceResult!
|
|
1951
|
+
|
|
1952
|
+
# Geocoding
|
|
1953
|
+
"""
|
|
1954
|
+
Get geocoding coverage statistics.
|
|
1955
|
+
"""
|
|
1956
|
+
geocodingStatus: GeocodingStatus!
|
|
1116
1957
|
}
|
|
1117
1958
|
|
|
1118
1959
|
# -------------------------------------------------------
|
|
@@ -1132,4 +1973,18 @@ type Mutation {
|
|
|
1132
1973
|
"""
|
|
1133
1974
|
lookback: Int
|
|
1134
1975
|
): GarminSyncTriggerResult!
|
|
1976
|
+
|
|
1977
|
+
"""
|
|
1978
|
+
Trigger batch reverse-geocoding of un-geocoded location records.
|
|
1979
|
+
"""
|
|
1980
|
+
triggerGeocoding(
|
|
1981
|
+
"""
|
|
1982
|
+
Number of locations to geocode in this batch (default 100)
|
|
1983
|
+
"""
|
|
1984
|
+
batch_size: Int
|
|
1985
|
+
"""
|
|
1986
|
+
Re-process previously failed location records (for example, those with status `no_coverage`)
|
|
1987
|
+
"""
|
|
1988
|
+
retry_failed: Boolean
|
|
1989
|
+
): GeocodingTriggerResult!
|
|
1135
1990
|
}
|