├── .dockerignore ├── .editorconfig ├── .env ├── .ghci ├── .gitignore ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── app ├── DevelMain.hs ├── devel.hs └── main.hs ├── config ├── models ├── routes ├── settings.yml └── test-settings.yml ├── dist └── x86_64-linux │ └── server ├── entrypoint.sh ├── messages └── en.msg ├── migrations ├── add-device-preferred-localization.txt ├── add-device-updated.txt ├── add-model-perpetual-grant.txt ├── add-model-remote-transfer.txt ├── add-model-screen-capture-detection.txt ├── add-playback-grant-created.txt ├── add-remote-transfer-seen.txt ├── add-remote-transfer-sender-nickname-cipher.txt ├── add-remote-transfer-sender-public-key-cipher.txt ├── add-remote-transfer-type.txt ├── add-subscriber-source.txt ├── alter-playback-grant-created-default.txt ├── index-playback-grant-recipient-key-fingerprint.txt ├── index-playback-grant-recording-uid.txt ├── remove-device-token-fingerprint-index.txt ├── remove-remote-transfer-sender-key-fingerprint-cipher.txt └── schema.txt ├── server.cabal ├── src ├── Application.hs ├── Data │ └── Extension.hs ├── Foundation.hs ├── Handler │ ├── DeviceUpdate.hs │ ├── Devices.hs │ ├── Extension.hs │ ├── Feedback.hs │ ├── Health.hs │ ├── Home.hs │ ├── MarkAsSeen.hs │ ├── PerpetualGrant.hs │ ├── PerpetualGrants.hs │ ├── PlaybackGrant.hs │ ├── PlaybackGrants.hs │ ├── RemoteTransfer.hs │ ├── RemoteTransfers.hs │ ├── ScreenCaptureDetections.hs │ └── Subscribers.hs ├── Import.hs ├── Import │ └── NoFoundation.hs ├── Migrations.hs ├── Model.hs ├── Model │ ├── ConsumedGrant.hs │ ├── Device.hs │ ├── Extension.hs │ ├── PerpetualGrant.hs │ ├── PlaybackGrant.hs │ ├── PushNotification.hs │ ├── RemoteTransfer.hs │ ├── RemoteTransferType.hs │ └── Subscriber.hs └── Settings.hs ├── stack.yaml ├── test ├── ApplicationSpec.hs ├── Handler │ ├── DeviceUpdateSpec.hs │ ├── DevicesSpec.hs │ ├── MarkAsSeenSpec.hs │ ├── PerpetualGrantSpec.hs │ ├── PerpetualGrantsSpec.hs │ ├── PlaybackGrantSpec.hs │ ├── PlaybackGrantsSpec.hs │ ├── RemoteTransferSpec.hs │ ├── RemoteTransfersSpec.hs │ ├── ScreenCaptureDetectionsSpec.hs │ └── SubscribersSpec.hs ├── Spec.hs ├── TestExtension.hs ├── TestFactory.hs └── TestImport.hs └── wait-for-it.sh /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | .stack-work 3 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/.editorconfig -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/.env -------------------------------------------------------------------------------- /.ghci: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/.ghci -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/README.md -------------------------------------------------------------------------------- /app/DevelMain.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/app/DevelMain.hs -------------------------------------------------------------------------------- /app/devel.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/app/devel.hs -------------------------------------------------------------------------------- /app/main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/app/main.hs -------------------------------------------------------------------------------- /config/models: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/config/models -------------------------------------------------------------------------------- /config/routes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/config/routes -------------------------------------------------------------------------------- /config/settings.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/config/settings.yml -------------------------------------------------------------------------------- /config/test-settings.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/config/test-settings.yml -------------------------------------------------------------------------------- /dist/x86_64-linux/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/dist/x86_64-linux/server -------------------------------------------------------------------------------- /entrypoint.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/entrypoint.sh -------------------------------------------------------------------------------- /messages/en.msg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/messages/en.msg -------------------------------------------------------------------------------- /migrations/add-device-preferred-localization.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/add-device-preferred-localization.txt -------------------------------------------------------------------------------- /migrations/add-device-updated.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/add-device-updated.txt -------------------------------------------------------------------------------- /migrations/add-model-perpetual-grant.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/add-model-perpetual-grant.txt -------------------------------------------------------------------------------- /migrations/add-model-remote-transfer.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/add-model-remote-transfer.txt -------------------------------------------------------------------------------- /migrations/add-model-screen-capture-detection.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/add-model-screen-capture-detection.txt -------------------------------------------------------------------------------- /migrations/add-playback-grant-created.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/add-playback-grant-created.txt -------------------------------------------------------------------------------- /migrations/add-remote-transfer-seen.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/add-remote-transfer-seen.txt -------------------------------------------------------------------------------- /migrations/add-remote-transfer-sender-nickname-cipher.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/add-remote-transfer-sender-nickname-cipher.txt -------------------------------------------------------------------------------- /migrations/add-remote-transfer-sender-public-key-cipher.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/add-remote-transfer-sender-public-key-cipher.txt -------------------------------------------------------------------------------- /migrations/add-remote-transfer-type.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/add-remote-transfer-type.txt -------------------------------------------------------------------------------- /migrations/add-subscriber-source.txt: -------------------------------------------------------------------------------- 1 | Depends: schema 2 | Apply: | 3 | ALTER TABLE "subscriber" ADD COLUMN "source" VARCHAR NULL; 4 | -------------------------------------------------------------------------------- /migrations/alter-playback-grant-created-default.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/alter-playback-grant-created-default.txt -------------------------------------------------------------------------------- /migrations/index-playback-grant-recipient-key-fingerprint.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/index-playback-grant-recipient-key-fingerprint.txt -------------------------------------------------------------------------------- /migrations/index-playback-grant-recording-uid.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/index-playback-grant-recording-uid.txt -------------------------------------------------------------------------------- /migrations/remove-device-token-fingerprint-index.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/remove-device-token-fingerprint-index.txt -------------------------------------------------------------------------------- /migrations/remove-remote-transfer-sender-key-fingerprint-cipher.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/remove-remote-transfer-sender-key-fingerprint-cipher.txt -------------------------------------------------------------------------------- /migrations/schema.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/migrations/schema.txt -------------------------------------------------------------------------------- /server.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/server.cabal -------------------------------------------------------------------------------- /src/Application.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Application.hs -------------------------------------------------------------------------------- /src/Data/Extension.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Data/Extension.hs -------------------------------------------------------------------------------- /src/Foundation.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Foundation.hs -------------------------------------------------------------------------------- /src/Handler/DeviceUpdate.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/DeviceUpdate.hs -------------------------------------------------------------------------------- /src/Handler/Devices.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/Devices.hs -------------------------------------------------------------------------------- /src/Handler/Extension.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/Extension.hs -------------------------------------------------------------------------------- /src/Handler/Feedback.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/Feedback.hs -------------------------------------------------------------------------------- /src/Handler/Health.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/Health.hs -------------------------------------------------------------------------------- /src/Handler/Home.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/Home.hs -------------------------------------------------------------------------------- /src/Handler/MarkAsSeen.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/MarkAsSeen.hs -------------------------------------------------------------------------------- /src/Handler/PerpetualGrant.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/PerpetualGrant.hs -------------------------------------------------------------------------------- /src/Handler/PerpetualGrants.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/PerpetualGrants.hs -------------------------------------------------------------------------------- /src/Handler/PlaybackGrant.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/PlaybackGrant.hs -------------------------------------------------------------------------------- /src/Handler/PlaybackGrants.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/PlaybackGrants.hs -------------------------------------------------------------------------------- /src/Handler/RemoteTransfer.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/RemoteTransfer.hs -------------------------------------------------------------------------------- /src/Handler/RemoteTransfers.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/RemoteTransfers.hs -------------------------------------------------------------------------------- /src/Handler/ScreenCaptureDetections.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/ScreenCaptureDetections.hs -------------------------------------------------------------------------------- /src/Handler/Subscribers.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Handler/Subscribers.hs -------------------------------------------------------------------------------- /src/Import.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Import.hs -------------------------------------------------------------------------------- /src/Import/NoFoundation.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Import/NoFoundation.hs -------------------------------------------------------------------------------- /src/Migrations.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Migrations.hs -------------------------------------------------------------------------------- /src/Model.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Model.hs -------------------------------------------------------------------------------- /src/Model/ConsumedGrant.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Model/ConsumedGrant.hs -------------------------------------------------------------------------------- /src/Model/Device.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Model/Device.hs -------------------------------------------------------------------------------- /src/Model/Extension.hs: -------------------------------------------------------------------------------- 1 | module Model.Extension where 2 | -------------------------------------------------------------------------------- /src/Model/PerpetualGrant.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Model/PerpetualGrant.hs -------------------------------------------------------------------------------- /src/Model/PlaybackGrant.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Model/PlaybackGrant.hs -------------------------------------------------------------------------------- /src/Model/PushNotification.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Model/PushNotification.hs -------------------------------------------------------------------------------- /src/Model/RemoteTransfer.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Model/RemoteTransfer.hs -------------------------------------------------------------------------------- /src/Model/RemoteTransferType.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Model/RemoteTransferType.hs -------------------------------------------------------------------------------- /src/Model/Subscriber.hs: -------------------------------------------------------------------------------- 1 | module Model.Subscriber where 2 | -------------------------------------------------------------------------------- /src/Settings.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/src/Settings.hs -------------------------------------------------------------------------------- /stack.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/stack.yaml -------------------------------------------------------------------------------- /test/ApplicationSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/ApplicationSpec.hs -------------------------------------------------------------------------------- /test/Handler/DeviceUpdateSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/DeviceUpdateSpec.hs -------------------------------------------------------------------------------- /test/Handler/DevicesSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/DevicesSpec.hs -------------------------------------------------------------------------------- /test/Handler/MarkAsSeenSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/MarkAsSeenSpec.hs -------------------------------------------------------------------------------- /test/Handler/PerpetualGrantSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/PerpetualGrantSpec.hs -------------------------------------------------------------------------------- /test/Handler/PerpetualGrantsSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/PerpetualGrantsSpec.hs -------------------------------------------------------------------------------- /test/Handler/PlaybackGrantSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/PlaybackGrantSpec.hs -------------------------------------------------------------------------------- /test/Handler/PlaybackGrantsSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/PlaybackGrantsSpec.hs -------------------------------------------------------------------------------- /test/Handler/RemoteTransferSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/RemoteTransferSpec.hs -------------------------------------------------------------------------------- /test/Handler/RemoteTransfersSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/RemoteTransfersSpec.hs -------------------------------------------------------------------------------- /test/Handler/ScreenCaptureDetectionsSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/ScreenCaptureDetectionsSpec.hs -------------------------------------------------------------------------------- /test/Handler/SubscribersSpec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/Handler/SubscribersSpec.hs -------------------------------------------------------------------------------- /test/Spec.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -F -pgmF hspec-discover #-} 2 | -------------------------------------------------------------------------------- /test/TestExtension.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/TestExtension.hs -------------------------------------------------------------------------------- /test/TestFactory.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/TestFactory.hs -------------------------------------------------------------------------------- /test/TestImport.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/test/TestImport.hs -------------------------------------------------------------------------------- /wait-for-it.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rumuki/rumuki-server/HEAD/wait-for-it.sh --------------------------------------------------------------------------------