Halkyon's ADR 0043, D1, D3, D5 and D8: any file up to 100 MB, attached to a task's description or to a comment, sealed as everything of Todo's. Server: the attachment table, synced and sealed as the others, with the sealed file's hash readable for the store; todoFiles hands halkyon_base its rows, readable by their space's members, and takes sealed files alone; the files no attachment names go daily. Its tests hold downloads to the row's space, refuse a readable file and prune what no live row names. Migration attachments: CREATE TABLE "attachment" with its indexes and the foreign key to its space, cascading as every synced table's. App: AttachmentRepository seals each file for its row, keeps it sealed and opened in the person's folder, uploads it after each sync and fetches it as it shows, both held back by Without files on mobile data but for a file tapped. Under the description and a comment's text, a row of them: pictures as thumbnails opening full-size, other files as chips opening in the system's app, else saved; the paperclip beside the description and in the comment's composer adds them, the composer holding them until it is sent. A task deleted takes its files and its comments' along, a comment its own. halkyon_app opens a file in the system's app (FileOpener): on Android through its plugin and a FileProvider of its own class, sharing the cache's halkyon_opened/ folder alone; on the desktop as a file: URI. Whats-New: Attach files to a task's description or a comment with the paperclip: pictures show as thumbnails, other files open in their app. Whats-New-De: Hänge mit der Büroklammer Dateien an die Beschreibung einer Aufgabe oder an einen Kommentar: Bilder erscheinen als Vorschau, andere Dateien öffnen sich in ihrer App. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
54 lines
1.5 KiB
YAML
54 lines
1.5 KiB
YAML
name: halkyon_todo_server
|
|
description: Halkyon Todo's server.
|
|
publish_to: none
|
|
|
|
environment:
|
|
sdk: '^3.13.0'
|
|
|
|
resolution: workspace
|
|
|
|
dependencies:
|
|
clock: ^1.1.3
|
|
# What every Halkyon server has (ADR 0014): signing in, the account and its
|
|
# deletion, pruning, the instance's basics. A Serverpod module among the
|
|
# repository's shared packages.
|
|
halkyon_base_server:
|
|
path: ../../../packages/halkyon_base_server
|
|
serverpod: 4.0.4
|
|
serverpod_auth_idp_server: 4.0.4
|
|
serverpod_offline_sync_server: 0.0.10
|
|
|
|
dev_dependencies:
|
|
crypto: ^3.0.7
|
|
serverpod_test: 4.0.4
|
|
test: ^1.25.5
|
|
|
|
serverpod:
|
|
# Companion Flutter apps that `serverpod start` can launch (Ctrl+R), keyed
|
|
# by a display alias. The default device is the web server, opening the
|
|
# machine's default browser when ready. All non-reserved properties are
|
|
# forwarded to `flutter run`. For the best IDE debugging experience, use
|
|
# `chrome` or a native target as the device. See the example below:
|
|
#
|
|
# Admin:
|
|
# path: ../apps/admin_flutter
|
|
# displayName: "Admin app"
|
|
# auto_launch: true
|
|
# device: chrome
|
|
# target: lib/main.dart
|
|
# web-hostname: 0.0.0.0
|
|
# web-port: 8090
|
|
# release: true
|
|
# pub: false
|
|
# dart-define:
|
|
# API_URL=https://admin.example.com
|
|
# FLAVOR=production
|
|
flutter_apps:
|
|
halkyon_todo:
|
|
path: ../halkyon_todo_flutter
|
|
displayName: "Halkyon Todo"
|
|
auto_launch: true
|
|
target: lib/driver.dart
|
|
# Todo has no web build (the default device): run it on the desktop,
|
|
# as Learn does.
|
|
device: linux
|