Commit graph

636 commits

Author SHA1 Message Date
NaiJi ec8d08ff07 fix(api): Force DateTime to UTC where timezone naive
- Solve https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/385
2023-11-13 14:03:52 +04:00
NaiJi d45417effe feat: Implement model adapter for Digital Ocean DNS
- Adapt all external interfaces to new DNS record models
2023-11-09 18:48:49 +04:00
NaiJi 5a7ae23ec2 feat: Implement model adapter for Cloudflare DNS 2023-11-09 17:21:56 +04:00
NaiJi e9c01576b2 feat: Implement model adapters
- Move desec model conversion to adapters
2023-11-09 16:52:27 +04:00
NaiJi db1a8b6f67 refactor: Move deSEC DNS conversion into DesecDnsRecord model
- Get rid of desired dns records hardcore for deSEC
2023-11-08 18:31:28 +04:00
NaiJi c894456fe6 refactor: Fix linter warnings
- Remove unused text_extensions.dart
2023-11-06 17:15:38 +04:00
NaiJi ✨ e1aeb89991 Merge branch 'master' into cloudflare-caching 2023-10-06 01:44:20 +03:00
NaiJi c2ae962322 refactor: Remove redundant zone id cache for Cloudflare 2023-10-05 19:42:29 -03:00
NaiJi ✨ 34eda8ca2d Merge branch 'master' into ssh-edcsa 2023-10-03 20:57:35 +03:00
NaiJi 043d29538c refactor: Conventionally reduce DiskSize to only 'int gb' for resize digital ocean volume 2023-09-30 21:35:58 -03:00
NaiJi fbacb5969d fix: Force size value truncation for digital ocean, change query url
- Resolve https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/367
2023-09-30 21:04:04 -03:00
NaiJi 172253902d feat(ssh): Add support for ECDSA SSH keys
- Resolve https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/319
2023-09-26 16:18:50 -03:00
NaiJi aa4429cc79 refactor(ui): Reorganize placeholders for empty pages
- Resolve https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/348
- Make 'Data Center' cards unclickable when uninitialized
2023-09-23 23:03:54 -03:00
NaiJi 5c329d47c1 refactor(ui): Make users be ordered properly on users page
- Resolves https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/340
2023-09-16 02:09:40 -03:00
Inex Code 1b26f2cf29 feat(backups): Allow to change snapshot rotation settings 2023-09-09 21:13:27 +03:00
Inex Code aac4b2773b feat(backups): Show the snapshot creation reason 2023-09-09 10:22:43 +03:00
NaiJi afa83f0d29 chore: I embarrassed myself... 2023-09-08 03:08:02 -03:00
NaiJi 14dbdbbc73 feat: Implement dialogue to choose an domain from several during installation 2023-09-08 02:54:28 -03:00
NaiJi ✨ fd13828ec3 Merge pull request 'feat: Implement copying to clipboard for snapshot id of backups' (#325) from snapshot-id into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/pulls/325
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-07 23:58:39 +03:00
Inex Code fe93360870 refactor: Use snackbar to show snapshot id copy notification 2023-09-07 14:35:42 +03:00
NaiJi 7b8d9ddca9 fix: Change 'mailserver' string id to 'email' in loginInfo switch 2023-09-06 23:41:34 -03:00
NaiJi 8a5ee1d42e Merge 'master' into 'price-calculation' 2023-09-06 20:54:30 -03:00
NaiJi ✨ 82dfdf04f9 fix: Implement Backblaze bucket restoration on server recovery (#324)
Resolves issue [320](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/320).

Co-authored-by: NaiJi <naijiworld@protonmail.com>
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/pulls/324
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-06 00:36:49 +03:00
NaiJi ✨ 1642cb907d Merge pull request 'refactor: Remove mentions of cloudflare from general variables' (#323) from dkim-record-naming into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/pulls/323
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-05 14:46:55 +03:00
NaiJi 85abd8f0fc refactor: Remove mentions of cloudflare from general variables 2023-09-05 08:45:09 -03:00
NaiJi 8f7730575e fix: Wrap DNS check in catch to avoid runtime crash 2023-09-05 08:34:01 -03:00
Inex Code d64764f4a8 Merge branch 'master' into price-calculation 2023-09-01 15:38:35 +03:00
Inex Code b01c61a47b feat(backups): Add snapshot restore modal 2023-08-14 07:10:15 +03:00
Inex Code 13e80a9e37 Merge branch 'master' into restore-strategy 2023-08-14 05:35:52 +03:00
Inex Code 6e241ff4d2 Merge branch 'master' into soft-reset 2023-08-14 05:34:18 +03:00
NaiJi e417088340 fix(i18l): Change broken validations string for superuser SSH 2023-08-07 10:26:52 -03:00
NaiJi 3ad6bb7bea Merge 'master' into 'soft-reset' 2023-08-07 10:15:23 -03:00
NaiJi 316e1f5db6 Merge 'master' into 'price-calculation' 2023-08-07 10:14:08 -03:00
NaiJi 80b83980ce feat(backup): Implement forget snapshot method 2023-08-07 09:44:26 -03:00
NaiJi 75b8a7b9ac feat(backups): Implement restore backup strategy 2023-08-07 09:23:48 -03:00
NaiJi dce33b2d4c fix: Remove unuzed ZoneId member 2023-08-07 08:09:24 -03:00
NaiJi 5c473d96a9 Merge 'master' into 'soft-reset' 2023-08-07 08:03:24 -03:00
NaiJi 20c3948e60 Merge 'master' into 'price-calculation' 2023-08-07 07:58:57 -03:00
NaiJi 037498070a fix: Include IPv4 cost to overall server cost 2023-08-07 07:52:26 -03:00
NaiJi ✨ a17b66c729 Merge pull request 'refactor: Implement Cloudflare-specific objects to avoid usage of global models' (#268) from dto into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/pulls/268
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 12:06:45 +03:00
NaiJi ✨ e35514b670 Merge pull request 'feat: Replace general entity naming on UI with specifics.' (#264) from hardcoded-naming into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/pulls/264
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-08-07 12:06:30 +03:00
NaiJi 719a5a7274 fix(hetzner): Normalize CPU usage percentage by cached amount of cores 2023-08-07 04:08:54 -03:00
NaiJi 4f8f87f8a8 feat: Include volume cost to overall monthly cost per server 2023-08-06 20:28:02 -03:00
NaiJi e97d52bad5 fix: Replace runSystemRebuild with rebootSystem 2023-08-06 18:24:41 -03:00
NaiJi ffe923ef13 fix: Replace hard reset from server provider with direct server reboot 2023-08-02 18:08:23 -03:00
NaiJi bd9a383d38 chore: Remove debug prints 2023-08-02 16:08:26 -03:00
NaiJi b2c67c80bd refactor: Implement Cloudflare objects to avoid usage of dynamic blobs
- Get rid of ZoneId term outside of Cloudflare
2023-08-02 16:04:49 -03:00
NaiJi bd8faf8760 feat: Replace general entity naming on UI with specifics.
- Pass actual provider namings to .tr functions as arguments
- Remove hardcoded namings where known
- Get rid of general mentions of 'DNS Provider' or 'Server Provider' where confusing
2023-07-28 20:42:41 -03:00
NaiJi c37e56b43a Merge master into dto 2023-07-27 21:29:05 -03:00
NaiJi ccac0ff7fa refactor(digital-ocean-dns): Implement basic DTO for Digital Ocean DNS to avoid dynamic objects 2023-07-27 20:55:32 -03:00
NaiJi ✨ fd1be6358c Merge pull request 'refactor(desec): Implement basic DTO for DESEC to avoid dynamic objects' (#246) from dto into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/pulls/246
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-28 00:32:25 +03:00
NaiJi 146350f8f4 refactor(desec): Implement basic DTO for DESEC to avoid dynamic objects 2023-07-26 21:33:50 -03:00
NaiJi b313cd340e refactor: Remove unused id field from DnsRecords object 2023-07-26 20:27:10 -03:00
NaiJi 603946ba73 Merge master into platform-path 2023-07-26 20:20:21 -03:00
Inex Code 3b1e71d771 fix: Add a workaround for the case when we don't have sreverTypeId 2023-07-25 18:39:58 +03:00
NaiJi ✨ ac6a4c192e Merge pull request 'feat(graphql): Implement Accept-Language header for GraphQL API map' (#243) from graphql-locale into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/pulls/243
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-25 17:38:14 +03:00
NaiJi 27aaf93838 chore: Rename '_getApiToken' to 'get _token' for GraphQL API map 2023-07-22 11:26:48 -03:00
NaiJi 08f3258615 feat(graphql): Implement Accept-Language header for GraphQL API map 2023-07-22 11:24:37 -03:00
NaiJi 69822f24ca chore: Remove unused server basic info attribute 2023-07-21 19:50:20 -03:00
NaiJi 7b02074345 fix(recovery): Replace server basic info request method with server type info request method 2023-07-21 19:48:00 -03:00
NaiJi 80f28463ec fix(recovery): Implement server type id requesting on recovery finish 2023-07-21 18:07:26 -03:00
NaiJi 68ed776785 feat(platform): Implement custom platform-dependent storage path definition
- Create new PlatformAdapter util and hide i/o there
- Move other usages of Platform class in PlatformAdapter
2023-07-20 17:06:17 -03:00
NaiJi 1e5b6c12e6 feat(digital-ocean): Implement uniqueness check
- Suggest to delete duplicate server
- Increase timeout by 5 iterations
2023-07-20 12:53:56 -03:00
NaiJi cbef1d578b feat(location): Make flag getter a part of server provider location object 2023-07-17 12:25:41 -03:00
NaiJi 56231a4197 feat(provider): Implement proper load functions for DNS and Server providers 2023-07-16 10:05:37 -03:00
NaiJi ✨ 0a333214d8 chore: Merge pull request 'refactor(rest-api): Move rest api methods according to their business logic files positions' (#235) from docs into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/pulls/235
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-16 14:00:40 +03:00
NaiJi 81aa6003be fix(installation): Add proper server type value loading 2023-07-16 07:25:14 -03:00
NaiJi 7ff1e36161 refactor(rest-api): Move rest api methods according to their business logic files positions
- Rename unmatching functions
2023-07-13 06:22:39 -03:00
NaiJi ✨ c0d8d37989 chore: Merge backups-testing to master
- Remove unused breaking isHidden field
- Add commentary for Hetzner Volume replicating Hetzner documentation
- Update router.gr (when i ran build_runner this file changed for some reason)

Co-authored-by: NaiJi <naijiworld@protonmail.com>
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/pulls/232
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-07-10 12:00:46 +03:00
NaiJi 91b22f531e refactor(dns-provider): Rearrange DNS Provider interface
Move all implement functions accordingly to their position in interface
2023-07-05 06:34:35 -03:00
Inex Code 2b8d3ee6d0 refactor: Getters for backup-related jobs 2023-07-02 18:23:12 +03:00
Inex Code edb02764f7 fix: GraphQL fragments deduplication 2023-07-02 18:22:07 +03:00
Inex Code a8bddaaeba style: Reformatting 2023-07-02 14:41:54 +03:00
Inex Code 62b7a0ee7e feat(backups): Add descriptions for backups 2023-07-02 14:41:31 +03:00
NaiJi b3b7c83461 chore: Implement fragments for ServerJob type on backup requests 2023-06-29 15:38:46 -03:00
Inex Code 7f5488c76b refactor(services): Remove unused state getters 2023-06-29 13:52:25 +03:00
Inex Code 90ab4244f6 feat(backups): Expose if the service can be backed up 2023-06-29 13:51:38 +03:00
Inex Code 62e906d1a4 feat(jobs): Update the model and modal sheets 2023-06-29 12:53:13 +03:00
Inex Code e1e4779c51 feat(recovery): Couldn't save the dns token 2023-06-29 12:52:37 +03:00
Inex Code d2d8add10d feat(backups): Update the models 2023-06-29 12:52:09 +03:00
NaiJi 02cb4dbf8b chore: Merge branch master into backups-rewrite 2023-06-26 15:01:57 -03:00
NaiJi a56f525060 refactor(server-provider): Rearrange Server Provider interface
- Move all implement functions accordingly to their position in interface
- Get rid of duplicate toInfect() functions, move them to ServerDomain
2023-06-26 14:15:53 -03:00
NaiJi e7ec1c1b53 chore: Merge master' into backups-rewrite 2023-06-22 23:23:13 -03:00
NaiJi feca9d3b06 chore: Update scheme.graphql and its models 2023-06-22 23:22:48 -03:00
NaiJi 88d8925ff7 refactor(price): Replace String shortcode with Currency class 2023-06-22 16:02:49 -03:00
NaiJi f05bedf460 chore: Implement new backups api 2023-06-22 11:14:00 -03:00
NaiJi e70cbab618 chore: Fix a typo in GraphQL scheme 2023-06-19 18:05:57 -03:00
NaiJi f4700965c6 chore: Merge master into backups-rewrite 2023-06-19 17:56:00 -03:00
NaiJi 9552df1ec2 chore: Remove unused abstraction for ServerProvider 2023-06-19 15:17:15 -03:00
NaiJi 215ad3579d chore: Rename ApiMaps to RestApiMap and GraphQLApiMap 2023-06-19 15:15:24 -03:00
NaiJi f9da202093 chore: Remove unused abstractions 2023-06-19 15:11:55 -03:00
NaiJi 3fedb17553 chore: Remove unused function from Desec API 2023-06-19 14:59:46 -03:00
NaiJi 0d49b89e43 chore: Remove unused function for Cloudflare provider 2023-06-19 14:52:07 -03:00
NaiJi e418a58e5b chore: Remove unused ApiTokenvalidatoin 2023-06-19 14:42:48 -03:00
NaiJi 0502e68cc1 chore: Remove unused function 2023-06-19 12:12:15 -03:00
NaiJi 6337889ab7 chore: Remove unneeded files 2023-06-19 11:59:11 -03:00
NaiJi 4adcca5746 fix: Resolve timer conflicts on emultiple emits 2023-06-16 00:52:04 -03:00
Inex Code c87b834550 fix: dialogs during server setup 2023-06-16 06:00:08 +03:00
Inex Code 53e72504f7 refactor: Allow changing values for TLS settings 2023-06-16 05:59:48 +03:00
Inex Code 13af7e5e1d feat(backups): Introduce read GraphQL nodes for backups 2023-06-16 04:30:46 +03:00
Inex Code a5bb654a76 refactor(backups): Rename BackbaleCredential to BackupsCredential
Also adding provider field
2023-06-16 04:28:45 +03:00
NaiJi b46c53674b feat: Implement new dialogue stub onChange 2023-06-15 13:48:23 -03:00
NaiJi 085c71748d fix: Add currency to price tag on server info page 2023-06-14 15:11:51 -03:00
NaiJi 69707f543f fix: Properly convert Digital Ocean droplets to ServerBasicInfo 2023-06-14 14:56:07 -03:00
NaiJi 2b1f6a12ea fix: Change JSON parsing for Digital Ocean droplets 2023-06-13 23:47:06 -03:00
NaiJi 65283306a9 fix: Make dropletIds field for DigitalOceanVolume optional 2023-06-13 23:37:47 -03:00
NaiJi f6424200e2 chore: Implement basic DigitalOceanServerType model 2023-06-12 23:48:29 -03:00
NaiJi 8d8e8cf265 fix: Change spf1 record from domainName to '@' for Digital Ocean DNS 2023-06-09 07:19:24 -03:00
NaiJi bfd67bac8d fix: Change .id field to ['id'] for DnsRecord in Digital Ocean DNS 2023-06-09 06:13:16 -03:00
NaiJi 55f62f1200 fix: Change sizeByte field to size for HetznerVolume 2023-06-09 05:11:42 -03:00
NaiJi 9d62d3af8e chore: Merge master into refactoring 2023-06-09 04:10:15 -03:00
NaiJi 140acaee49 chore: Implement basic Digital Ocean server models 2023-06-07 03:22:27 -03:00
NaiJi f42e415633 chore: Replace dynamic blobs with HetznerLocation 2023-06-07 00:25:34 -03:00
NaiJi 875a9e2e86 chore: Replace dynamic blobs with HetznerServerInfo 2023-06-07 00:20:42 -03:00
NaiJi fa4939d7c6 chore: Implement better Price abstraction for Digital Ocean server provider 2023-06-07 00:11:36 -03:00
NaiJi 49fe40bb38 chore: Implement better Price abstraction for Hetzner server provider 2023-06-07 00:09:39 -03:00
NaiJi 2a66d246c7 chore: Replace dynamic blobs with HetznerServerType 2023-06-07 00:03:34 -03:00
NaiJi ffa13aee04 chore: Implement HetznerVolume model and use it instead dynamic json 2023-06-06 23:35:57 -03:00
NaiJi 53c56e6bd4 feat: Remove basic_utils dependency
Replace it with InternetAddress from dart:io
2023-06-05 12:14:54 -03:00
NaiJi 29cbf702e5 fix: Remove unneded DNS check depending on CLOUDFLARE 2023-06-05 11:18:41 -03:00
NaiJi a690fb5089 fix: Force JSON content-type for REST API requests 2023-06-05 09:46:42 -03:00
NaiJi 4da4ed6afd feat: Move current installation dialogue error to installation state 2023-06-02 19:04:23 -03:00
NaiJi 040fc43e1f fix: Add DNS provider type to provider classes to fix wrong domain type 2023-06-02 02:44:34 -03:00
NaiJi 3a40b5ed32 fix: Add missing DNS providers to different installation steps 2023-06-02 02:15:13 -03:00
NaiJi f81bf968fd fix: Add forced JSON content type to REST APIs 2023-06-02 01:36:33 -03:00
NaiJi 3a0221e8b1 chore: Merge master into desec 2023-06-02 00:52:32 -03:00
NaiJi f55800cd72 fix: Implement better domain id check on DNS restoration 2023-06-01 15:12:49 +03:00
Inex Code 4e65d5f945 refactor: Migrate to Flutter 3.10 and Dart 3.0 2023-06-01 15:12:49 +03:00
NaiJi 0e3e560485 feat: Remove certificate check during installation 2023-06-01 15:12:49 +03:00
NaiJi 25eb82c131 feat: Implement proper access recovery for DNS providers 2023-06-01 15:12:49 +03:00
NaiJi 73ec2687b2 fix: Make minor improvements for deSEC 2023-06-01 15:12:49 +03:00
NaiJi 6bee028188 feat: Implement proper DKIM creation for deSEC 2023-06-01 15:12:49 +03:00
NaiJi 32ef162f9b feat: Implement polymorphic DNS check for DNS API 2023-06-01 15:12:49 +03:00
NaiJi c67e37a40e fix: Adjust graphql schemas to new dns provider
- fix runtime bugs
2023-06-01 15:12:49 +03:00
NaiJi 01c09aaae4 feat: Implement deSEC API support 2023-06-01 15:12:49 +03:00
NaiJi b41b4159b4 feat: Implement infrastructure for new DNS provider deSEC 2023-06-01 15:12:49 +03:00
NaiJi d114d1477f fix: Adapt usage of DNS provider interface to refactoring 2023-05-30 12:48:18 -03:00
NaiJi b0769b8ed0 chore: Separate business logic from API layer for Digital Ocean DNS 2023-05-30 00:04:29 -03:00
NaiJi 8123632cc1 feat: Implement Cloudflare DNS provider layer and separate from API 2023-05-29 23:18:02 -03:00
NaiJi 7832094609 chore: Create cloudflare dns provider interface and separate it from api 2023-05-25 00:15:58 -03:00
NaiJi 509b2ac7c7 chore: Move DNS provider methods to the abstract interface 2023-05-25 00:02:10 -03:00
NaiJi 8863dc8b2c chore: Move DNS validation to provider layer for desec 2023-05-24 23:51:40 -03:00
NaiJi eebbf98349 chore: Move domain list getter to dns provider layer for desec 2023-05-24 23:47:43 -03:00
NaiJi 4bb26559aa chore: Move business logic from API for desec dns provider 2023-05-22 23:40:25 -03:00
NaiJi 4260152081 chore: Merge desec into refactoring 2023-05-17 13:58:15 -03:00
NaiJi 4afcedebb7 feat: Remove certificate check during installation 2023-05-16 17:02:08 -03:00
NaiJi 232699bdb1 feat: Implement proper access recovery for DNS providers 2023-05-16 15:49:03 -03:00
NaiJi ce017c6ea8 fix: Make minor improvements for deSEC 2023-05-16 15:03:31 -03:00
NaiJi 6ddc2328f0 feat: Implement proper DKIM creation for deSEC 2023-05-16 12:49:55 -03:00
NaiJi e9665ad75d feat: Implement polymorphic DNS check for DNS API 2023-05-16 11:06:01 -03:00