Commit Graph

417 Commits

Author SHA1 Message Date
Derrick Hammer e7393085b4
refactor: implement new methods for RoutableAPI 2024-03-17 09:13:20 -04:00
Derrick Hammer 4bd2b028b7
chore: remove local setAuthCookie 2024-03-17 09:10:14 -04:00
Derrick Hammer 107118febc
refactor: switch to account.SetAuthCookie 2024-03-17 09:09:57 -04:00
Derrick Hammer 244aa89d71
refactor: use jape.Context 2024-03-17 09:09:29 -04:00
Derrick Hammer 9a899317c1
refactor: implement Domain and AuthTokenName 2024-03-17 09:02:48 -04:00
Derrick Hammer b4b211d003
feat: add BuildSubdomain helper 2024-03-17 09:01:28 -04:00
Derrick Hammer 325a368dea
refactor: add AuthTokenName to RoutableAPI 2024-03-17 08:53:56 -04:00
Derrick Hammer 5223a44790
refactor: move DEFAULT_AUTH_COOKIE_NAME to account 2024-03-17 08:51:59 -04:00
Derrick Hammer 33e644f5c7
refactor: add Domain method to RoutableAPI 2024-03-17 08:51:23 -04:00
Derrick Hammer 3dfdd2d2f4
refactor: add GetAllAPIs 2024-03-17 08:42:53 -04:00
Derrick Hammer 3e48593675
refactor: register api after init 2024-03-17 08:42:25 -04:00
Derrick Hammer ae37a186a9
feat: add dedicated registry for api objects 2024-03-17 08:41:40 -04:00
Derrick Hammer a85ced7c62
refactor: change Registry name to EntryRegistry 2024-03-17 08:36:32 -04:00
Derrick Hammer 61012ae394
fix: change property name 2024-03-17 08:33:24 -04:00
Derrick Hammer 1bd4527300
fix: use middleware.DEFAULT_AUTH_COOKIE_NAME for authCookieName 2024-03-17 08:30:55 -04:00
Derrick Hammer 6c58f6bd6c
refactor: use SetAuthCookie and set both DEFAULT_AUTH_COOKIE_NAME and s5 authCookieName 2024-03-17 08:17:56 -04:00
Derrick Hammer b03e6815e2
refactor: fall back and check for DEFAULT_AUTH_COOKIE_NAME 2024-03-17 08:13:50 -04:00
Derrick Hammer 193871f083
fix: error if user is nil 2024-03-16 21:31:09 -04:00
Derrick Hammer 3dc5c72840
fix: auth cookie needs to be at the root path 2024-03-16 21:14:43 -04:00
Derrick Hammer 1ca8d78c8e
fix: need to use develop branch for dashboard submodule 2024-03-16 21:07:57 -04:00
Derrick Hammer 57a455a17e
refactor: need to handle get requests as nested jape routers with special routing checks to ensure virtual client side app routing returns the static bundle 2024-03-16 21:05:42 -04:00
Derrick Hammer fd6c3e8604
fix: wrong embed path 2024-03-16 17:46:36 -04:00
Derrick Hammer cc1efd5d85
feat: add dashboard as a submodule and register embed and routing in account api 2024-03-16 17:13:29 -04:00
Derrick Hammer f6b28b0ee0
chore: temp disable email verification for testing 2024-03-16 15:43:52 -04:00
Derrick Hammer 971c72ada9
fix: add 401 status code 2024-03-16 11:37:42 -04:00
Derrick Hammer f558d87b36
fix: update /s5/account/pins response 2024-03-16 11:36:38 -04:00
Derrick Hammer ccae147398
feat: implement a basic account pins json api without paging 2024-03-16 11:14:06 -04:00
Derrick Hammer 8a2f501e8e
refactor: rename accountPins to accountPinsBinary 2024-03-16 11:00:27 -04:00
Derrick Hammer e11340ad2b
refactor: ensure we set a cookie, auth header and json response in both login and otp validate 2024-03-14 12:54:41 -04:00
Derrick Hammer 358d5fdf60
feat: add account info endpoint 2024-03-14 06:42:38 -04:00
Derrick Hammer 6ff84bbc1a
refactor: use dedicated auth mw for ping 2024-03-13 18:45:14 -04:00
Derrick Hammer d5118beb58
refactor: allow purpose to be none 2024-03-13 18:44:09 -04:00
Derrick Hammer 749a932663
fix: give login a dedicated authMiddleware instance 2024-03-13 17:35:26 -04:00
Derrick Hammer 4f891e067c
refactor: rename pong to ping 2024-03-13 17:34:10 -04:00
Derrick Hammer 2e3ec1408e
refactor: add PingResponse and link to /api/auth/ping 2024-03-13 17:26:25 -04:00
Derrick Hammer 0efcd35d65
refactor: add EmptyAllowed to authMw2fa 2024-03-13 14:01:08 -04:00
Derrick Hammer bf8d909a3c
refactor: add option to allow jwt to be bypassed if there is no token 2024-03-13 14:00:19 -04:00
Derrick Hammer ca12b99438
fix: first/last name are snake case 2024-03-13 13:54:30 -04:00
Derrick Hammer 36c614c483
fix: correct swagger for ping 2024-03-13 12:30:31 -04:00
Derrick Hammer c416b40d00
feat: add ping endpoint to check auth status 2024-03-13 12:26:38 -04:00
Derrick Hammer 06f37bf3d8
refactor: add 415 response to /s5/metadata 2024-03-12 11:23:15 -04:00
Derrick Hammer a1014acf15
refactor: use StatusUnsupportedMediaType 2024-03-12 11:21:25 -04:00
Derrick Hammer d5782c7e86
fix: bad error message 2024-03-12 07:00:57 -04:00
Derrick Hammer 6c60dae743
fix: if the render end is 0, ensure the range header is valid syntax and skip it 2024-03-10 11:53:24 -04:00
Derrick Hammer 1f1f204b35
fix: only return noop is we are SeekStart and want the beginning, otherwise this is likely actually needing to start a partial content seek 2024-03-09 17:46:18 -05:00
Derrick Hammer 0c90924f31
refactor: add checking tus for metadata before uploads 2024-03-09 15:37:58 -05:00
Derrick Hammer 4020b9f7c7
fix: S5File::Exists needs to check tus before uploads 2024-03-09 14:27:07 -05:00
Derrick Hammer 4261bb6a5d
refactor: if the file exists locally, pull from out own node before fetching it from the net 2024-03-07 16:59:50 -05:00
Derrick Hammer 8a6516e157
fix: if root return a file with that set 2024-03-07 16:48:56 -05:00
Derrick Hammer 6e97b582ba
fix: pass Name to override using CID 2024-03-07 16:48:20 -05:00
Derrick Hammer 91d58ee87f
refactor: change login to respond with the jwt token in the body 2024-03-06 18:13:34 -05:00
Derrick Hammer 550398c701
feat: add swagger spec and support to account api 2024-03-06 04:58:04 -05:00
Derrick Hammer 6fb77d102a
refactor: add logic to find any unpinned files of a child manifest if the root is pinned but the children aren't 2024-03-05 16:27:29 -05:00
Derrick Hammer caac09cc6f
feat: add CtxAborted and use in account pin 2024-03-05 13:41:47 -05:00
Derrick Hammer fdfffb897c
fix: if not a manifest, call pinEntity directly 2024-03-05 12:41:28 -05:00
Derrick Hammer a5c1356847
fix: don't rely on content length, but do a basic heuristic by reading 1 byte past the max upload, if if we haven't hit the limit and the sizes don't match, then error, but otherwise take an optimistic stance 2024-03-05 12:38:41 -05:00
Derrick Hammer c6feee1351
fix: check if entry returns nil 2024-03-03 11:29:37 -05:00
Derrick Hammer 73623b8c36
fix: add CIDTypeDirectory to isCidManifest 2024-03-03 10:43:01 -05:00
Derrick Hammer f20b4ee916
fix: update usage of GetCachedStorageLocations 2024-03-03 09:33:21 -05:00
Derrick Hammer 080fcbd559
fix: add special case to check for an index.html, and pass root and root type 2024-03-03 08:29:07 -05:00
Derrick Hammer bd5544198e
refactor: optionally track a "root" cid which will be used for webapp manifests to start. Have IsDir run heuristics to verify if it is a dir by checking the manifest tryfiles 2024-03-03 08:28:39 -05:00
Derrick Hammer 756a01d52f
fix: if the filename is a . treat as a special case for a dir 2024-03-03 07:39:18 -05:00
Derrick Hammer bd29ab4612
fix: if we are being requested the root while is a dot, create a file based on the root cid with the . name 2024-03-03 07:38:34 -05:00
Derrick Hammer 9d378f4197
fix: ignore / and . not existing 2024-03-03 07:18:03 -05:00
Derrick Hammer 201c9b992f
fix: need to deref r to replace it 2024-03-03 07:17:46 -05:00
Derrick Hammer 9d25784a6e
fix: we need to pin the files after upload 2024-03-03 06:50:24 -05:00
Derrick Hammer d2c9f8e38a
fix: strip out any port 2024-03-03 06:40:50 -05:00
Derrick Hammer b03af65418
fix: need to manually cast errorPages to webappErrorPages 2024-03-03 05:24:03 -05:00
Derrick Hammer 3d55254916
fix: update use of webApp.Paths 2024-03-03 03:41:30 -05:00
Derrick Hammer 37514a742f
fix: errorFiles is really errorPages 2024-03-03 03:03:15 -05:00
Derrick Hammer 4db07d5170
fix: need to pass tus 2024-03-02 06:24:12 -05:00
Derrick Hammer f98b0f48bd
fix: use hash provided by constructor 2024-03-02 06:12:29 -05:00
Derrick Hammer dde5d255a6
fix: debug api needs cors support 2024-03-02 06:08:23 -05:00
Derrick Hammer 3654607f3f
refactor: replace debug apu auth middlewares with proxy middlewares 2024-03-02 05:01:21 -05:00
Derrick Hammer a96fc8682f
fix: return error not S5Error 2024-03-02 04:55:04 -05:00
Derrick Hammer 7315f8e694
fix: need to manually extract the multipart filename because goes internals strips file paths 2024-03-02 04:54:29 -05:00
Derrick Hammer 0c0cdfd2b1
fix: fix parsing of app upload settings, as they are json, and errorPages needs to be errorFiles 2024-03-02 04:51:28 -05:00
Derrick Hammer 8a112a8c12
refactor: make S5File implement fs.ReadDirFile and fs.DirEntry 2024-03-01 23:30:06 -05:00
Derrick Hammer 1dff84accf
refactor: make resolveDirCid a utility function 2024-03-01 23:28:05 -05:00
Derrick Hammer b87ba1e6bf
feat: add support for webapp and dir cid's in dnslink 2024-03-01 22:50:22 -05:00
Derrick Hammer 8e2adba1eb
feat: add initial fs interfaces for webapp and dir 2024-03-01 22:49:47 -05:00
Derrick Hammer 3dbd791314
feat: add S5FileInfo struct and refactorings needed to be used as a fs.File and in a fs.Fs 2024-03-01 22:49:17 -05:00
Derrick Hammer f79a0dd448
fix: need to use hashBytes and an optional type 2024-03-01 22:46:42 -05:00
Derrick Hammer a1f36df8b9
refactor: change newFile to take the params struct directly and fill in the blanks 2024-03-01 21:59:49 -05:00
Derrick Hammer 65548e8ec7
refactor: pass cidType to new S5File 2024-03-01 21:44:02 -05:00
Derrick Hammer f63d567b53
refactor: add support for using a passed cid type 2024-03-01 21:32:06 -05:00
Derrick Hammer 217bb78b3b
fix: ExistingUploadID no longer needed 2024-03-01 20:56:22 -05:00
Derrick Hammer aefe9efaaa
fix: export struct and add json tags 2024-03-01 10:30:08 -05:00
Derrick Hammer aacdd48428
fix: we need to track when the queue is finished ourselves 2024-03-01 10:11:03 -05:00
Derrick Hammer d5e2770135
refactor: don't use a buffered chan 2024-03-01 05:14:47 -05:00
Derrick Hammer 56100e5d50
fix: shadow cid 2024-03-01 04:55:46 -05:00
Derrick Hammer 866739007c
refactor: use golang-queue to parallel process pinning checks 2024-03-01 04:27:24 -05:00
Derrick Hammer 8f6e7d1acc
fix: dont add nil cids 2024-03-01 04:14:11 -05:00
Derrick Hammer 7ec4f26142
fix: only try to fetch proof file if we are over the post limit 2024-03-01 04:01:22 -05:00
Derrick Hammer a1572b256b
fix: init results 2024-03-01 04:00:39 -05:00
Derrick Hammer 3f2757fb18
feat: add support for resolving a registry entry when pinning 2024-02-29 12:08:04 -05:00
Derrick Hammer b3df326980
feat: add support for recursively pinning a manifest and all its children 2024-02-29 12:02:49 -05:00
Derrick Hammer c984d72cfd
refactor: add performance logging for bao 2024-02-28 12:33:13 -05:00
Derrick Hammer d9d85f2804
fix: casing 2024-02-27 11:14:38 -05:00
Derrick Hammer 097e29aa94
refactor: switch to using All api then filter to find valid locations 2024-02-27 10:58:15 -05:00
Derrick Hammer 944c5f01b9
refactor: add support for ExcludeNodes via excludeSelf in newStorageLocationProvider 2024-02-27 07:31:59 -05:00
Derrick Hammer 9f5b676f47
refactor: use S3MultipartUpload if greater than S3_MULTIPART_MIN_PART_SIZE 2024-02-27 06:14:27 -05:00
Derrick Hammer 01eda4aa23
fix: need to pass content length 2024-02-27 04:31:55 -05:00
Derrick Hammer 9b6a253313
fix: need to use Get, head isn't always supported 2024-02-27 04:26:55 -05:00
Derrick Hammer 8f8944a645
fix: pass ctx 2024-02-27 03:43:41 -05:00
Derrick Hammer 33af108d39
feat: add password reset endpoints 2024-02-26 11:04:05 -05:00
Derrick Hammer 057db6a636
feat: add /api/auth/verify-email endpoint 2024-02-26 10:47:47 -05:00
Derrick Hammer e629618f25
fix: apply ProxyMiddleware to register 2024-02-26 10:43:55 -05:00
Derrick Hammer b3d63007e1
fix: pass login ip 2024-02-26 08:30:17 -05:00
Derrick Hammer 355033634d
refactor: set login ip with LoginPubkey 2024-02-26 08:28:22 -05:00
Derrick Hammer b270d6f414
fix: CreateAccount needs a verify email argument 2024-02-26 08:23:53 -05:00
Derrick Hammer 88ef43acaa
fix: dnslink would not import 2024-02-26 08:18:55 -05:00
Derrick Hammer 90834601d7
refactor: modify CreateAccount to optionally send an email verification 2024-02-26 08:15:10 -05:00
Derrick Hammer 907de0b3af
fix: need to init apiDomain 2024-02-25 09:54:34 -05:00
Derrick Hammer 38375d44d8
feat: initial DNS link support 2024-02-25 09:47:40 -05:00
Derrick Hammer 40b3504c1d
refactor: rewrite main api router to be a class, lazy init it, and introduce RoutableAPI which can dynamically handle incoming requests if the main routes aren't matched 2024-02-25 08:36:32 -05:00
Derrick Hammer 8885fd37cc
refactor: use job terminology for consistency 2024-02-25 07:50:59 -05:00
Derrick Hammer d618f08275
refactor: rename RetryableTask to RetryableJob 2024-02-25 07:49:22 -05:00
Derrick Hammer 5c3d1144d4
feat: add ability for pinning to import a CID via cron task 2024-02-25 07:23:30 -05:00
Derrick Hammer ea8c50edc7
refactor: make PostUploadLimit uint64 2024-02-25 02:10:41 -05:00
Derrick Hammer ee2f7331eb
fix: routes need http verbs 2024-02-23 08:20:03 -05:00
Derrick Hammer 7f12ee5b0d
refactor: implement new configuration management system 2024-02-22 02:13:59 -05:00
Derrick Hammer 8f78f6fe87
fix: metadata service not passed in construction 2024-02-17 23:27:37 -05:00
Derrick Hammer fc042570ab
refactor: change to store the hash as a raw, but also make it unique with an index 2024-02-17 23:17:26 -05:00
Derrick Hammer 84a78b7a7e
fix: use realKey 2024-02-17 20:25:30 -05:00
Derrick Hammer 7ec03524ed
fix: need to pass the claim by ref 2024-02-17 20:12:49 -05:00
Derrick Hammer 2fd3368b5a
fix: trim bearer in lowercase 2024-02-17 19:48:28 -05:00
Derrick Hammer c076d219d0
refactor: move checking of users name to api layer 2024-02-17 08:45:06 -05:00
Derrick Hammer 162af1e274
refactor: switch to using package init functions with build tags to selectively build protocol support 2024-02-17 07:40:22 -05:00
Derrick Hammer 3ded11d705
fix: HttpMiddlewareFunc needs its own case 2024-02-17 05:38:50 -05:00
Derrick Hammer 9949dae5e8
fix: add HttpMiddlewareFunc to switch case 2024-02-17 05:28:56 -05:00
Derrick Hammer d4be04eae9
fix: need to use a param struct 2024-02-17 05:23:33 -05:00
Derrick Hammer 30b18a4ced
fix: update Routes signature 2024-02-17 03:14:17 -05:00
Derrick Hammer 24694ecbae
feat: create new swagger package 2024-02-17 03:05:22 -05:00
Derrick Hammer 3b9f4bbe3d
feat: add MergeRoutes 2024-02-17 03:04:27 -05:00
Derrick Hammer 7c330e308e
refactor: allow Routes to return an error 2024-02-17 03:04:15 -05:00
Derrick Hammer a5f0a4bfcc
fix: GetUploadReader needs ctx 2024-02-17 02:38:07 -05:00
Derrick Hammer c452b0c271
refactor: add context 2024-02-17 02:37:52 -05:00
Derrick Hammer c468a81543
refactor: remove tus out of method names 2024-02-16 22:03:34 -05:00
Derrick Hammer 93e727ab3b
refactor: epic protocol and storage design refactor 2024-02-16 22:00:53 -05:00
Derrick Hammer cd9cccc2a9
refactor: merge http handler back to account api struct 2024-02-16 08:52:30 -05:00
Derrick Hammer 7834471b84
refactor: merge http handler back to s5 api struct 2024-02-16 08:49:19 -05:00
Derrick Hammer 7f5847f7da
chore: remove commented code 2024-02-16 08:42:26 -05:00
Derrick Hammer f0d7a337db
refactor: change how init of protocols works and make router building part of the interface 2024-02-16 08:39:55 -05:00
Derrick Hammer 1b3934c793
refactor: update usage of errors 2024-02-15 21:06:30 -05:00
Derrick Hammer 3f90cbfe09
refactor: use new errors and optimize code 2024-02-15 20:55:38 -05:00
Derrick Hammer c084743b47
refactor: apply auth and proxy middlewares 2024-02-14 00:41:02 -05:00
Derrick Hammer 41a6772c9f
chore: emailverifier no longer needed here 2024-02-13 23:32:23 -05:00
Derrick Hammer 8b9471aa04
refactor: switch to GetUserFromContext 2024-02-13 23:29:48 -05:00
Derrick Hammer 431dec55f9
feat: otp api support 2024-02-13 23:23:01 -05:00