Commit Graph

7843 Commits

Author SHA1 Message Date
Clement Sam
e5c43722dc storagenode/pieces: introduce FileWalker
FileWalker implements methods to walk over pieces in
in a storage directory.

This is just a refactor to separate filewalker functions
from pieces.Store. This is needed to simplify the work
to create a separate filewalker subprocess and reduce the
number of config flags passed to the subprocess.

You might want to check https://review.dev.storj.io/c/storj/storj/+/9773

Change-Id: I4e9567024e54fc7c0bb21a7c27182ef745839fff
2023-03-30 18:33:52 +00:00
Moby von Briesen
f8e8f3a4cc web/satellite: Implement coupon code billing UI enabled flag
This flag was previously implemented, but when we reworked the billing
UI, we forgot to re-implement it with the new screens.

This change fixes that.

Change-Id: Ifad2b82f1080928b72d7e572796fcf4287e5ed3f
2023-03-30 11:44:42 -04:00
Michal Niewrzal
dc9cbe36ae satellite/metabase: sort stats by creation time not number of entries
By accident query to get latest table stats was ordered by 'row_count'
column instead 'create'. We need latest stats so we need ordering by
creation time.

Change-Id: I9d0a0edda8bab59c3d96b7a15cd6502ed51633fc
2023-03-30 12:31:45 +00:00
Márton Elek
00420b5904 storagenode/piecestore: better monkit metric for download
Download is server from two goroutines:

 * one is waiting for the orders (and updates the actual limit)
 * other one sends the valuable bytes back to the client (in case the actual order is big enough)

These two tasks are syncrhonized with the help of a `sync2.NewThrottle()`

But all of these happens in the same method, therefore we have no idea how much time is spent on waiting for next orders
 (throttle can wait until we receive new orderlimit), and how much time is spent with actual work.

This patch moves the actual work (after sending routine is waked up) to a separated method to have better visibility and measure the actual work (read data + send it).

Change-Id: Ia5068c544560a53bc2fcea6cb6fce85cfacbd95b
2023-03-30 10:46:18 +00:00
Vitalii
bef60f879f web/satellite: introduce notifications pinia module
Add new module to replace old Vuex module

Change-Id: I4d12c0a13ef9768719a156eb0af543971e775939
2023-03-30 08:34:43 +00:00
Vitalii
7921add393 web/satellite: make pinia modules more independent
Make pinia modules not to depent on other pinia modules where possible.

Change-Id: I2bcc473936a3e294eed58fafd977d447c7feef91
2023-03-30 08:34:28 +00:00
Vitalii
1480b5b9a0 web/satellite: migrated AGName component to use SFC composition api
Change-Id: I3158a759db15922a3598cf7f5a519ca4df194f28
2023-03-30 08:33:46 +00:00
Vitalii
0da9430462 web/satellite: migrated PermissionsSelect component to use SFC composition api
Change-Id: I6c1701107d9bdcb75492efd0f7b5e54d1e79cd54
2023-03-29 21:36:17 +00:00
Vitalii
cd51044216 web/satellite: migrated UploadFile component to use SFC composition api
Change-Id: Ie5dd3edc9bf769d48b669db84e4264a885df83d3
2023-03-29 20:57:46 +00:00
Vitalii
102db3d010 web/satellite: migrated ProjectSelection component to use SFC composition api
Change-Id: I2f9f5e642dc7a5f23df71c79fae25c37048bd107
2023-03-29 20:04:20 +00:00
JT Olio
bd238819b6 go.mod: bump storj.io/drpc
this includes improved connection reset error handling

Change-Id: I211221493b5dd3f4b95d4db44bf022302352f050
2023-03-29 19:27:57 +00:00
Lizzy Thomson
9b3eefbd51 web/satellite: update hard coded free account limits to be dynamic
Fixes https://github.com/storj/storj-private/issues/195

Change-Id: I8b0d565eecca979e5bf092cade2891c2719b4329
2023-03-29 18:39:53 +00:00
Vitalii
a6323c59c2 web/satellite: migrated DurationSelection component to use SFC composition api
Change-Id: I3d67b9f7eaa108c60be45279c847d7e75e70e7e5
2023-03-29 17:47:15 +00:00
Vitalii
5d94ea4b78 web/satellite: migrated DurationPicker component to use SFC composition api
Change-Id: Ic77c1a15f65bc5054541de9563d01b1ed2c4fd72
2023-03-29 17:11:48 +00:00
Lizzy Thomson
63533c628b Satellite/console: Reduce free account limits
Update free account limits to segments(10k), storage(25gb), and
bandwidth(25gb)

Issue: https://github.com/storj/storj-private/issues/182

Change-Id: I59250fc9f1eebc812bc85ecfbc2924f8c4369064
2023-03-29 15:24:24 +00:00
Michal Niewrzal
54b6e1614a satellite/metainfo: drop MultipleVersions config flag
This flag was in general one time switch to enable versions internally.
New we can remove it as it makes code more complex.

Change-Id: I740b6e8fae80d5fac51d9425793b02678357490e
2023-03-29 13:45:09 +00:00
paul cannon
ae5947327b satellite/accounting: Use metabase.AliasPiece with tally observer
We want to eliminate usages of LoopSegmentEntry.Pieces, because it is
costing a lot of cpu time to look up node IDs with every piece of every
segment we read.

In this change, we are eliminating use of LoopSegmentEntry.Pieces in the
node tally observer (both the ranged loop and segments loop variants).
It is not necessary to have a fully resolved nodeID until it is time to
store totals in the database. We can use NodeAliases as the map key
instead, and resolve NodeIDs just before storing totals.

Refs: https://github.com/storj/storj/issues/5622
Change-Id: Iec12aa393072436d7c22cc5a4ae1b63966cbcc18
2023-03-29 12:24:05 +00:00
Wilfred Asomani
e750f6f145 satellite/accountfreeze: change price threshold default
The default price threshold has been changed to 10000 cents. The help
text has also been modified to clarify that this value is in cents.

Change-Id: I3b605056c860a3afef7202950180bc8b863fe16a
2023-03-28 16:05:08 +00:00
Wilfred Asomani
fd1a94a84d satellite/accountfreeze: add debug logs
A debug log has been added to the autofreeze chore to show numbers of
invoices, users involved, users frozen, users warned and users bypassed
due to larger than config amount owed.

Issue: https://github.com/storj/storj/issues/5700

Change-Id: I4e628606fe234b6d239b76167a4781ca9e276308
2023-03-28 15:30:31 +00:00
Wilfred Asomani
ed70a03844 satellite/{console,db,analytics}: better warning handling
This handles cases where a user is warned and triggers payment for their
account. Previously, only a frozen account will trigger this payment,
and will be unfrozen on successful payment. Now, accounts in warning
state trigger payments and are removed from that state on successful payment.

Issue: https://github.com/storj/storj/issues/5691

Change-Id: Icc2107f5d256657d176d8b0dd0a43a470eb01277
2023-03-28 14:30:38 +00:00
Vitalii
d407408f24 web/satellite: migrated BucketsSelection component to use SFC composition api
Change-Id: Ie7ec220ac021fe11b640f61aad0c648f53cc3071
2023-03-28 14:35:48 +03:00
Vitalii
174308f60e web/satellite: migrated BucketsDropdown component to use SFC composition api
Change-Id: I58f1c9b160a8b90912dd7288259073dcbc5b2954
2023-03-28 10:03:41 +00:00
Wilfred Asomani
6857a48a0b web/satellite: change onboarding trigger
This change uses the onboarding user settings for whether to show
 onboarding (pricing plan) or not.
This change also fixes an issue where a new user is prompted for
passphrase once from onboarding and a second time on the dashboard.

Issue: https://github.com/storj/storj/issues/5661
https://github.com/storj/storj/issues/5675

Change-Id: I8e92c732260116de830cfbbbe0545f7e7c8997b0
2023-03-28 08:47:13 +00:00
Vitalii
e9c1488fce web/satellite: migrated BucketNameBullet component to use SFC composition api
Change-Id: Iab138902747b58607273a5d69799ba83934d4173
2023-03-27 20:44:31 +00:00
Vitalii
aa66faf3df web/satellite: migrated ShareBucketModal component to use SFC composition api
Change-Id: I058367f16abbe549fced29c260d87acd51cadf0e
2023-03-27 20:09:34 +00:00
Vitalii
f3d37f3bc5 web/satellite: migrate DeleteBucketModal component to use SFC composition api
migrated component to use SFC composition api

Change-Id: I1af3376f14af0e0dde2847ffe117feb2682e6a98
2023-03-27 19:09:58 +00:00
Vitalii
e4d9f8686d satellite/{web, console}: remove old access grant and billing flows
Removed old flows along with feature flags.

Issue: https://github.com/storj/storj/issues/5694

Change-Id: Ib3a1cbb12435500bdc2c540bb67615c64ca19e5e
2023-03-27 19:08:35 +00:00
Vitalii
8668e0c716 web/satellite: migrate ProjectsListItem to use SFC composition api
Migrated component to use SFC composition api

Change-Id: I6bb84ba8f64c84efdba1a5a3ee8723563c163a87
2023-03-27 18:19:01 +00:00
Vitalii
0fd43caffe web/satellite: migrate ProjectsList to use SFC composition api
Migrate component to use SFC composition api

Change-Id: Id3a82548becd0ddb90801ed9868a2537ff758b8b
2023-03-27 17:37:23 +00:00
Vitalii
9a87da1b8a web/satellite: migrate AuthorizeArea to use SFC composition api
Migrate component to use SFC composition api

Change-Id: I7ff1f7f9ff64419cba2feac96130b78be048605b
2023-03-27 17:00:23 +00:00
Márton Elek
8d64330dfe Makefile: bump-dependencies should update storjscan, too
Change-Id: Ibde26535567df38a19e01b1a5a3819263c31d0f8
2023-03-27 15:56:05 +00:00
Vitalii
736f97b1e9 web/satellite: migrate AG ConfirmDeletePopup to use SFC composition api
Migrated component to use SFC composition api.

Change-Id: Ic4a5dbf733b4a831f5c5508ed17a0a5c746e3cae
2023-03-27 15:07:19 +00:00
Vitalii
3deddb548d web/satellite: migrate AccessGrants components to use SFC composition api
Migrated component to use SFC composition api.

Change-Id: I5cb3563626f480c05ad9ab8aabf1c02eeebc5767
2023-03-27 15:06:09 +00:00
Márton Elek
5e6d1cc00a
go.mod: bump storj.io/{common,private,uplink}
Change-Id: I7af875b6ac73af3a9d77928f69a05b80a5321696
2023-03-27 16:13:52 +02:00
Jeremy Wharton
ef5ebc9f64 satellite/satellitedb: fix panic when calculating project usage
Previously, our code produced a Go panic when attempting to index an
empty slice of bucket user agent entries. A length check has been
added to ensure that the slice is not accessed beyond its bounds.

Change-Id: I904ca275b934be1b05393a45d99ff415dcafc926
2023-03-27 07:44:50 +00:00
Wilfred Asomani
41bfbbe772 satellite/console: add endpoint to get user settings
This change adds an endpoint that gets a user's settings. It will
create a new settings entry if no settings exists. There's also a new
endpoint to change a user's onboarding status.

Issue: https://github.com/storj/storj/issues/5661

Change-Id: I9941bb9d61994af46244003f3ef4fcfe7d36918e
2023-03-24 22:19:08 +00:00
Jeremy Wharton
be567021d9 web/satellite: fetch frontend config from the satellite
This change updates the satellite frontend to retrieve its
configuration from the satellite.

References #5494

Change-Id: I1eb961f8a32f7d88173006117d41eddb57624692
2023-03-24 02:10:12 -05:00
Vitalii
fd28a665c7 web/satellite: introduce access grants pinia module
Added new access grants pinia module.

Change-Id: Icb04d6e77ecc19797e250279cbe07e333596d816
2023-03-24 00:09:57 +00:00
Wilfred Asomani
7c68b51c82 satellite/{console,db}: add onboardings columns
This change adds onboarding_start, onboarding_end and onboarding_step
columns to the user_settings table. the first two are used to determine
if a user should go through onboarding, the last will be used to as the
step a user got to before exiting onboarding without finishing.

Issue: https://github.com/storj/storj/issues/5660

Change-Id: I8070c880d0d2fc22086f24087c962f57c695cc50
2023-03-23 17:50:31 +00:00
Vitalii
2922eeed07 web/satellite: migrated components to use pinia ab testing module instead of Vuex
Migrated components to use new pinia ab testing module instead of old Vuex module.

Change-Id: Ib71ff1ad8d08829d939dee2ae87f4349bd4c33cf
2023-03-23 14:51:56 +02:00
Vitalii
a588f96b90 web/satellite: migrated UpgradeNotification component to use SFC composition api
Migrated component to use SFC composition api.

Change-Id: Ic2f11d1c77eaa5e66ed80c1c2fd6acbfe25f9052
2023-03-23 10:22:18 +00:00
Vitalii
6a99e3df31 web/satellite: migrated MobileNavigation component to use SFC composition api
Migrated component to use SFC composition api.
Fixed some router code usage in DashboardArea.
Fixed billing Detailed history router usage.
Fixed VBanner console error.

Change-Id: I372f870185a00334895c62d504e2aed44f8f5b9d
2023-03-22 21:23:01 +00:00
Jeremy Wharton
01f0e602b4 satellite/payments/stripecoinpayments: retry API calls with exp backoff
A Stripe backend implementation has been added that uses an exponential
backoff strategy to retry failed API calls. This behavior can be
configured in the satellite config.

References #5156

Change-Id: I16ff21a39775ea331c442457f976be0c95a7b695
2023-03-22 07:20:27 -05:00
Vitalii
2dee4c9afc web/satellite: migrated navigation AccountArea to use SFC composition api
Migrated component to use SFC composition api.
Deleted unused PaidTierBar component.

Change-Id: Ie7938fbcd1b65ef0da9e9aefec879d605892253b
2023-03-22 11:54:01 +02:00
Vitalii
9feee869f0 web/satellite: add ab testing pinia module
Added new ab testing pinia module.

This is a part of migration from Vuex to pinia.

Change-Id: I5e6c325d979b0641ed745de4ca17039b812dd842
2023-03-22 11:49:24 +02:00
Kaloyan Raev
98b82486bd satellite/overlay: update country code on every node check-in
We have a specific issue that a user uploaded a file to a bucket
geo-fenced to EU and one of the pieces appeared to be on a node in the
US. The country code of this node is set to SE (Sweden) in the satellite
DB. It turns out that some time ago MaxMind changed the country code of
this node's IP from Sweden to US, but this change hasn't been reflected
in the satellite's database.

So far the satellite updates the country code of a node only if its IP
changes. It was assumed that if the IP does not change, its country code
shouldn't change too. This turned to be a wrong assumption.

With this change, the satellite will look up the MaxMindDB on every
check-in to see if the country code of the node's IP has changed.

Change-Id: Icdf659b09be9fc6ad14601902032b35ba5ea78c4
2023-03-22 08:38:51 +00:00
JT Olio
58f465c8d8 storagenode/piecestore: improve cancelation detection logic
if a drpc.ClosedError was returned, it would always take the
first (failure) branch, despite the second branch's existence.

Change-Id: Ife3b27869c4e9d37ca2914e2d1d1a2c60d326309
2023-03-21 17:50:49 +00:00
JT Olio
0b4b04900a private/server: debounce noise and tls connections
to support TCP_FAST_OPEN, we're considering just using
two TCP connections in parallel per request, one with
and one without. this allows us to safely fire both
concurrently without stressing out the node too much.

see https://review.dev.storj.io/c/storj/storj/+/9933

Change-Id: I9aa8a0252350db5ace04ee125bfe469203e980ec
2023-03-21 16:51:31 +00:00
JT Olio
0208eb7693 docs/blueprints: update tcp_fastopen
Change-Id: I8d9121c38853103b07514d8e55c3bf06049283fd
2023-03-21 14:06:16 +00:00
Vitalii
fb12717256 web/satellite: fix passphrase switching outside object browser
There is a bug when switching passphrase outside object browser.
We don't generate edge credentials when switching passphrase so navigating to object browser shows old objects (for old passphrase).
By this fix we clear edge credentials every time user switches passphrase.

Change-Id: Ia09d559f90ae7f02ae5c778844beb7ec268356e7
2023-03-20 17:05:26 +00:00