Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions cloudflare_workers/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { app as admin_stats } from '../../supabase/functions/_backend/private/ad
import { app as channel_device } from '../../supabase/functions/_backend/private/channel_device.ts'
import { app as channel_stats } from '../../supabase/functions/_backend/private/channel_stats.ts'
import { app as native_observe_stats } from '../../supabase/functions/_backend/private/native_observe_stats.ts'
import { app as update_delivery_stats } from '../../supabase/functions/_backend/private/update_delivery_stats.ts'
import { app as config } from '../../supabase/functions/_backend/private/config.ts'
import { app as configBuilder } from '../../supabase/functions/_backend/private/config_builder.ts'
import { app as create_device } from '../../supabase/functions/_backend/private/create_device.ts'
Expand Down Expand Up @@ -129,6 +130,7 @@ appPrivate.route('/admin_stats', admin_stats)
appPrivate.route('/stats', stats_priv)
appPrivate.route('/channel_stats', channel_stats)
appPrivate.route('/native_observe_stats', native_observe_stats)
appPrivate.route('/update_delivery_stats', update_delivery_stats)
appPrivate.route('/stripe_checkout', stripe_checkout)
appPrivate.route('/stripe_portal', stripe_portal)
appPrivate.route('/verify_email_otp', verify_email_otp)
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/pr-assets/update-delivery-latency.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -880,6 +880,7 @@
"created-app-within-7-days": "Created App (within 7 days)",
"created-channel-within-7-days": "Created Channel (within 7 days)",
"demo-apps-created": "Demo Apps Created",
"demo": "Demo",
"credits-pagination-label": "Page {current} / {total}",
"credits-plan-overage": "{included}, then {price}",
"credits-pricing-price": "{price} {unit}",
Expand Down Expand Up @@ -1248,6 +1249,7 @@
"failed-to-create-api-key": "Failed to create API key",
"failed-to-fetch-release-status": "Failed to fetch release status",
"failed-to-fetch-native-observe-stats": "Failed to fetch native observe statistics",
"failed-to-fetch-update-delivery-stats": "Failed to fetch update delivery latency",
"failed-to-fetch-statistics": "Failed to fetch statistics",
"failed-to-get-user": "Failed to load the user",
"failed-to-regenerate-api-key": "Failed to regenerate API key",
Expand Down Expand Up @@ -2316,6 +2318,22 @@
"unsafe": "Unsafe",
"update": "Update",
"update-password-now": "Update Password Now",
"update-delivery-devices": "Devices measured",
"update-delivery-latency": "Time to deliver an update",
"update-delivery-latency-help": "Device-side download delivery latency percentiles from download start to download complete.",
"update-delivery-no-data": "No delivery latency data yet",
"update-delivery-no-data-help": "Percentiles appear when devices report download timing via stats metadata, or when download start and complete events can be paired.",
"update-delivery-no-data-help-platform": "Platform percentiles use download duration metadata only. Values appear when devices report duration_ms (or duration) on download complete events.",
"update-delivery-fetch-error": "Could not load delivery latency",
"update-delivery-fetch-error-help": "The request failed. Retry to refresh this chart.",
"update-delivery-retry": "Retry",
"update-delivery-p50": "P50",
"update-delivery-p75": "P75",
"update-delivery-p95": "P95",
"update-delivery-p99": "P99",
"update-delivery-samples": "Deliveries measured",
"update-delivery-trend": "Delivery latency trend",
"update-delivery-trend-help": "Daily P50, P75, P95, and P99 for time to deliver an update to devices.",
"update_statistics": "Updates statistics",
"updated-at": "Updated at",
"updated-default-download-channel": "Updated default download channel.",
Expand Down
7 changes: 7 additions & 0 deletions src/auto-imports.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ declare global {
const WEBHOOK_EVENT_TYPES: typeof import('./stores/webhooks').WEBHOOK_EVENT_TYPES
const asyncComputed: typeof import('@vueuse/core').asyncComputed
const autoResetRef: typeof import('@vueuse/core').autoResetRef
const buildDemoUpdateDeliveryStats: typeof import('./composables/useUpdateDeliveryStats').buildDemoUpdateDeliveryStats
const computed: typeof import('vue').computed
const computedAsync: typeof import('@vueuse/core').computedAsync
const computedEager: typeof import('@vueuse/core').computedEager
Expand Down Expand Up @@ -294,6 +295,7 @@ declare global {
const useToString: typeof import('@vueuse/core').useToString
const useToggle: typeof import('@vueuse/core').useToggle
const useTransition: typeof import('@vueuse/core').useTransition
const useUpdateDeliveryStats: typeof import('./composables/useUpdateDeliveryStats').useUpdateDeliveryStats
const useUrlSearchParams: typeof import('@vueuse/core').useUrlSearchParams
const useUserMedia: typeof import('@vueuse/core').useUserMedia
const useVModel: typeof import('@vueuse/core').useVModel
Expand Down Expand Up @@ -338,6 +340,9 @@ declare global {
export type { CheckDomainResponse } from './composables/useSSORouting'
import('./composables/useSSORouting')
// @ts-ignore
export type { UpdateDeliveryScope, UpdateDeliveryStatsResponse } from './composables/useUpdateDeliveryStats'
import('./composables/useUpdateDeliveryStats')
// @ts-ignore
export type { MetricCategory, DateRangeMode } from './stores/adminDashboard'
import('./stores/adminDashboard')
// @ts-ignore
Expand All @@ -364,6 +369,7 @@ declare module 'vue' {
readonly WEBHOOK_EVENT_TYPES: UnwrapRef<typeof import('./stores/webhooks')['WEBHOOK_EVENT_TYPES']>
readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']>
readonly buildDemoUpdateDeliveryStats: UnwrapRef<typeof import('./composables/useUpdateDeliveryStats')['buildDemoUpdateDeliveryStats']>
readonly computed: UnwrapRef<typeof import('vue')['computed']>
readonly computedAsync: UnwrapRef<typeof import('@vueuse/core')['computedAsync']>
readonly computedEager: UnwrapRef<typeof import('@vueuse/core')['computedEager']>
Expand Down Expand Up @@ -644,6 +650,7 @@ declare module 'vue' {
readonly useToString: UnwrapRef<typeof import('@vueuse/core')['useToString']>
readonly useToggle: UnwrapRef<typeof import('@vueuse/core')['useToggle']>
readonly useTransition: UnwrapRef<typeof import('@vueuse/core')['useTransition']>
readonly useUpdateDeliveryStats: UnwrapRef<typeof import('./composables/useUpdateDeliveryStats')['useUpdateDeliveryStats']>
readonly useUrlSearchParams: UnwrapRef<typeof import('@vueuse/core')['useUrlSearchParams']>
readonly useUserMedia: UnwrapRef<typeof import('@vueuse/core')['useUserMedia']>
readonly useVModel: UnwrapRef<typeof import('@vueuse/core')['useVModel']>
Expand Down
1 change: 1 addition & 0 deletions src/components.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ declare module 'vue' {
ConnectAppPicker: typeof import('./components/connect/ConnectAppPicker.vue')['default']
CreditsCta: typeof import('./components/CreditsCta.vue')['default']
DataTable: typeof import('./components/DataTable.vue')['default']
DeliveryLatencyPanel: typeof import('./components/dashboard/DeliveryLatencyPanel.vue')['default']
DemoOnboardingGate: typeof import('./components/dashboard/DemoOnboardingGate.vue')['default']
DemoOnboardingModal: typeof import('./components/dashboard/DemoOnboardingModal.vue')['default']
DeploymentBanner: typeof import('./components/dashboard/DeploymentBanner.vue')['default']
Expand Down
Loading
Loading