Files
tatlock-ui/lib/core/config/app_config.dart
T
Jeroen SchweitzerandClaude Opus 4.5 9c41a8805d
Build and Push / release (push) Successful in 3s
Build and Push / build (push) Successful in 3m0s
chore: release v1.0.5
Web authentication now uses OIDC Authorization Code flow with PKCE
instead of NPM forward auth. Added callback route and web utilities.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 12:01:42 +01:00

80 lines
2.4 KiB
Dart

/// Application configuration from compile-time environment variables.
///
/// ## Development (LAN - no auth required)
/// Default values use LAN IPs for local development:
/// ```bash
/// flutter run -d chrome
/// ```
///
/// ## Production (public URLs - auth required)
/// Override with public URLs for production builds:
/// ```bash
/// flutter build web \
/// --dart-define=CORE_API_URL=https://api.schweitz.net \
/// --dart-define=TATLOCK_API_URL=https://tatlock.schweitz.net
/// ```
class AppConfig {
AppConfig._();
/// Core API base URL
/// - LAN default: No auth required
/// - Production: https://api.schweitz.net (requires OIDC)
static const coreApiUrl = String.fromEnvironment(
'CORE_API_URL',
defaultValue: 'http://192.168.86.149:8083',
);
/// Tatlock API base URL
/// - LAN default: No auth required
/// - Production: https://tatlock.schweitz.net (requires OIDC)
static const tatlockApiUrl = String.fromEnvironment(
'TATLOCK_API_URL',
defaultValue: 'http://192.168.86.149:8000',
);
/// Authentik OIDC discovery URL
static const authDiscoveryUrl = String.fromEnvironment(
'AUTH_DISCOVERY_URL',
defaultValue:
'https://auth.schweitz.net/application/o/tatlock-ui/.well-known/openid-configuration',
);
/// Authentik client ID
static const authClientId = String.fromEnvironment(
'AUTH_CLIENT_ID',
defaultValue: 'tatlock-ui',
);
/// Authentik redirect URI scheme (for mobile/native)
static const authRedirectScheme = String.fromEnvironment(
'AUTH_REDIRECT_SCHEME',
defaultValue: 'net.schweitz.tatlock',
);
/// Web app base URL (for OIDC redirect URI on web)
static const webBaseUrl = String.fromEnvironment(
'WEB_BASE_URL',
defaultValue: 'https://home.schweitz.net',
);
/// Whether running in debug mode
static const isDebug = bool.fromEnvironment('DEBUG', defaultValue: false);
/// Whether auth is required (false for LAN development)
static bool get requiresAuth =>
coreApiUrl.contains('schweitz.net') ||
tatlockApiUrl.contains('schweitz.net');
/// Portainer URL for container management
static const portainerUrl = String.fromEnvironment(
'PORTAINER_URL',
defaultValue: 'http://192.168.86.149:9000',
);
/// Netdata URL for system monitoring
static const netdataUrl = String.fromEnvironment(
'NETDATA_URL',
defaultValue: 'http://192.168.86.149:19999',
);
}