halkyon/apps/meditate/halkyon_meditate_server/lib/src/meditate_base.dart

34 lines
1.7 KiB
Dart
Raw Normal View History

import 'package:halkyon_base_server/base.dart';
import 'package:halkyon_meditate_server/src/meditate_data.dart';
/// Where this project's source is published, which the instance names
/// unless its operator sets `SOURCE_URL`. Both licences require offering it
/// to the people who use the instance (AGPL-3.0-or-later for the app,
/// SSPL-1.0 for the server).
const upstreamSourceCodeUrl =
'https://code.halkyon.app/project-halkyon/halkyon';
/// The oldest build of the app this server works with (the number after `+`
/// in the app's version); apps below it are asked to update. Raise it in the
/// commit that breaks older apps, to the build of the first that works again.
const minimumAppBuild = 1;
/// How Halkyon Meditate sets halkyon_base up (ADR 0014), the module giving every
/// Halkyon server its sign-in, the account and its deletion, the pruning and
/// the instance's basics: the instance says it serves `meditate` (the app accepts
/// only such an instance; never change it), sign-in mails name the app, and
/// the instance names this project's source. A person's sittings and keys go
/// with them ([deleteMeditateData]). It holds the instance's
/// register, or is a member of the one [accounts] names (ADR 0016; the
/// server reads it from the operator's environment, `ACCOUNT_REGISTER_URL`).
/// The server sets it up before it starts (`server.dart`), and so do its
/// tests.
HalkyonBase meditateBase({AccountsMode accounts = const HoldsRegister()}) =>
HalkyonBase(
app: 'meditate',
appName: 'Halkyon Meditate',
upstreamSourceCodeUrl: upstreamSourceCodeUrl,
minimumAppBuild: minimumAppBuild,
deletePersonData: const [deleteMeditateData],
accounts: accounts,
);