Skip to content


If your application requires additional services like a database, auth etc.., you'll need to create a class that implements the DoxService interface and then register it with Dox. Since Dox operates with isolates (multi-threading), these extra services must be passed to each isolate to ensure their availability on all isolates.

Example with auth

class AuthService implements DoxService {
    void setup() {
        /// default auth guard
        defaultGuard: 'web',

        /// list of auth guards
        guards: <String, AuthGuard>{
            'web': AuthGuard(
            driver: JwtAuthDriver(secret: SecretKey(Env.get('APP_KEY'))),
            provider: AuthProvider(
                model: () => User(),
List<DoxService> services = <DoxService>[
  ... /// other services