A Dio interceptor that records requests, responses, and failures in Vigil. It adds W3C traceparent, parses backend Server-Timing, and decodes gated Vigil-Debug error diagnostics.

Installation

flutter pub add vigil_dio vigil_core dio

Usage

import 'package:dio/dio.dart';
import 'package:vigil_core/vigil_core.dart';
import 'package:vigil_dio/vigil_dio.dart';

void main() {
  Vigil.instance.init(
    config: const VigilConfig(
      debugKey: String.fromEnvironment('VIGIL_DEBUG_KEY'),
    ),
  );

  final dio = Dio()..interceptors.add(VigilDioInterceptor());
}

Add the interceptor once to each Dio instance. Configure masking through VigilConfig before making requests. Streamed bodies are marked unavailable instead of being consumed.

The debug key is sent as Vigil-Key; it is separate from the ingest key used by vigil_backend. Values compiled into an app are recoverable, so use this only as a development gate and keep backend diagnostics disabled in production.

For Flutter Web, expose Server-Timing, traceparent, and Vigil-Debug through your backend CORS configuration.

Libraries

vigil_dio
Dio request and response capture for Vigil.