The API generator didn't generate valid TypeScript code when using
Go anonymous types.
This commit fixes that issue creating names for anonymous types.
Change-Id: Ice0748d8650686e3d3979523b8f218dc20eade5a
Add a few validations to panic with a nicer message or abort rather than
generating invalid code.
Also improve the panic message wrapping a standard error with errs2 at
the time that it's returned.
Change-Id: I1393933eb5f0bc3f86646bf4d0acfc64626efbe0
This change extends the folder deletion modal to work for objects as
well.
Issue: https://github.com/storj/storj/issues/6299
Change-Id: I13e9ffa508c802480c0e3ed2ac630fa693b66fc7
Use placeholder instead of prefilled value for bucket creation dialog.
Issue:
https://github.com/storj/storj/issues/6319
Change-Id: I86c25926034adbe93a58df56e0bf18b60b41e568
break text of download notification (e.g. when you download from preview)
hide right/left buttons in object preview if there are not next/previous items
add counter property to project name in "project create". Set max length so that user cannot type additional characters
Issue:
https://github.com/storj/storj/issues/6268
Change-Id: Icff95427a5c73c2fb5bb014ff09150283cc49e83
Add a test for Types.All method because we may need to adjust the logic
in future commits and we want to detect what has changed for good or
bad.
Change-Id: I1db4bf67db3c87513cb9aeb7b942c6c132fc4dd1
* doc(testplan): storj private cloud
* Update storj-private-cloud-testplan.md
this commit pushes the content to the template file and removes unused sections.
The repair checker and repair worker both need to determine which pieces
are healthy, which are retrievable, and which should be replaced, but
they have been doing it in different ways in different code, which has
been the cause of bugs. The same term could have very similar but subtly
different meanings between the two, causing much confusion.
With this change, the piece- and node-classification logic is
consolidated into one place within the satellite/repair package, so that
both subsystems can use it. This ought to make decision-making code more
concise and more readable.
The consolidated classification logic has been expanded to create more
sets, so that the decision-making code does not need to do as much
precalculation. It should now be clearer in comments and code that a
piece can belong to multiple sets arbitrarily (except where the
definition of the sets makes this logically impossible), and what the
precise meaning of each set is. These sets include Missing, Suspended,
Clumped, OutOfPlacement, InExcludedCountry, ForcingRepair,
UnhealthyRetrievable, Unhealthy, Retrievable, and Healthy.
Some other side effects of this change:
* CreatePutRepairOrderLimits no longer needs to special-case excluded
countries; it can just create as many order limits as requested (by
way of len(newNodes)).
* The repair checker will now queue a segment for repair when there are
any pieces out of placement. The code calls this "forcing a repair".
* The checker.ReliabilityCache is now accessed by way of a GetNodes()
function similar to the one on the overlay. The classification methods
like MissingPieces(), OutOfPlacementPieces(), and
PiecesNodesLastNetsInOrder() are removed in favor of the
classification logic in satellite/repair/classification.go. This
means the reliability cache no longer needs access to the placement
rules or excluded countries list.
Change-Id: I105109fb94ee126952f07d747c6e11131164fadb
Vertically centered loader and no preview states for gallery view.
Issue:
https://github.com/storj/storj/issues/6312
Change-Id: Icce4aff6d0927ee36e3a94886edf4cc31dd379bf
Fixed regular expression which should search and remove insignificant trailing zeros of limit values.
Issue:
https://github.com/storj/storj/issues/6311
Change-Id: I267c779e406a1933d43f09b497470bad9f8ab71c
Add the front-end sources of the new back-office.
The front-end doesn't have any business logic, it only has the pages and
the components, so it's purely UI.
The front-end was developed in a separate repository until was
completed.
Change-Id: I382e50789d6b929a67b8a0b887563ef48cb1473d
This change fixes an issue where the S3 client data was not cleared
when switching projects. This would cause errors to appear when
entering the bucket of a project you switched to.
Resolves#6295
Change-Id: Ib9da43ddf1d38eed6ca26ba73a24e38815617b3e
This change makes SVG file entries in the object browser table use the
image icon. Previously, SVGs used the icon for unknown file types.
Resolves#6306
Change-Id: Ic2a8b6154dc222292f3048d967a0420d5872acd0
When clicked, cards containing project stats will redirect the user to
the card's respective page.
Resolves#6305
Change-Id: I6a598ad2a8a6ab79f48f559eced55f8f8257a518
This change updates the "Learn More" links in the Buckets page,
the Team page, and the project dashboard.
Resolves#6293
Change-Id: I2d9c0ca9b8bbd2991869648d231a8069868efdc0
When we do `satellite run api --placement '...'`, the placement rules are not parsed well.
The problem is based on `viper.AllSettings()`, and the main logic is sg. like this (from a new unit test):
```
r := ConfigurablePlacementRule{}
err := r.Set(p)
require.NoError(t, err)
serialized := r.String()
r2 := ConfigurablePlacementRule{}
err = r2.Set(serialized)
require.NoError(t, err)
require.Equal(t, p, r2.String())
```
All settings evaluates the placement rules in `ConfigurablePlacementRules` and stores the string representation.
The problem is that we don't have proper `String()` implementation (it prints out the structs instead of the original definition.
There are two main solutions for this problem:
1. We can fix the `String()`. When we parse a placement rule, the `String()` method should print out the original definition
2. We can switch to use pure string as configuration parameter, and parse the rules only when required.
I feel that 1 is error prone, we can do it (and in this patch I added a lot of `String()` implementations, but it's hard to be sure that our `String()` logic is inline with the parsing logic.
Therefore I decided to make the configuration value of the placements a string (or a wrapper around string).
That's the main reason why this patch seems to be big, as I updated all the usages.
But the main part is in beginning of the `placement.go` (configuration parsing is not a pflag.Value implementation any more, but a separated step).
And `filter.go`, (a few more String implementation for filters.
https://github.com/storj/storj/issues/6248
Change-Id: I47c762d3514342b76a2e85683b1c891502a0756a
This change implements the Manage Passphrase dialog in the Vuetify
project. Within it, users can create, switch, or clear the current
passphrase.
Resolves#6284
Change-Id: I2ca87e62b59c0cefd13bf36005c9301b35f12255
This change implements the Delete Access dialog for deleting access
grants. It is triggered by clicking Delete in the actions menu of
access grant table rows.
Resolves#6300
Change-Id: I288f9a88c62e57390f039e41ca6770d2942a9058
send analytics event if project invite link is clicked and if user
signs up.
github issue: https://github.com/storj/storj/issues/5190
Change-Id: I41eee5e679a84b9ec325815655684a98624d5656
Slightly refactored html and css code (it's still weird) of billing modals.
Probably there is no reason to rework it entirely since we're going to migrate to Vuetify project.
Issue:
https://github.com/storj/storj/issues/5220
Change-Id: I25b4b0cdb9d4d24ef3d1f615f2a3471b2d3e727d
This change uses the code protected MFA code generation endpoint. It
requires a code from the user before generating new recovery codes.
Issue: https://github.com/storj/storj-private/issues/433
Change-Id: I38c7c6f543a1d0c68aa1c2e9092e76fed2448467
This change shows real projects in the Project dropdown of the project
navigation sidebar, replacing mock data.
Resolves#6283
Change-Id: Id8eef6cc02b5b773f89a00d41d5335ae2feb1729
Currently each testplanet test is running ranged loop no matter if
it's used or not. This is small change with some benefits like:
* saves some cpu cycles
* less log entries
* ranged loop won't interfere with other systems
Change have no big impact on tests execration but I believe it's nice to
have.
Change-Id: I731846bf625cac47ed4f3ca3bc1d1a4659bdcce8
This change removes the Browse item from the project navigation
sidebar. This item didn't do anything, and we have no plans to use it.
Resolves#6281
Change-Id: Ifed6a563e38585955b0bf180c2896d6d224cb7dc
Detects whether or not TCP fastopen is supported by running sysctl to
grab the current value of net.inet.tcp.fastopen.server_enable.
If not enabled, directs the operator to use sysctl to set it temporarily
and /etc/sysctl.conf to set it on-boot.
Setting the socket option always works whether it is enabled or not.
Verified that fastopen works on FreeBSD 13. Did not attempt on earlier
versions but support has been there since FreeBSD 10.
Change-Id: I2e0c457558a6fa7b7a1b18bc3c6684aff50b81a2
This change indicates the user's tier in the My Account dropdown button
of the Vuetify project.
Resolves#6278
Change-Id: I0db6bfe8e03720b87ff77e947f785031eed7e528
There's only one value that BeginExactObject should return and there's
no point in restating that.
Also, use a clearer value for the random object version.
Change-Id: I06b26ad87d64e1b04b48458f624edd630f7f2f1d
This change adds functionality to the items in the project navigation
sidebar's Resources dropdown menu.
Resolves#6282
Change-Id: I64e0d472592ec07545034adff6a3c2122fcc113c
This change fixes an issue where the configured user agent wasn't used
by Uplink commands.
Resolvesstorj/customer-issues#999
Change-Id: I2d9f38308eddad7c471a100c968082783c05a3b3
This change uses the code protected MFA code generation endpoint. It
requires a code from the user before generating new recovery codes.
Issue: https://github.com/storj/storj-private/issues/433
Change-Id: I248649567a4800374b84ee512a79195ea2c44652
This change adds an alternate MFA code recovery endpoint that requires
MFA code to generate codes.
Issue: https://github.com/storj/storj-private/issues/433
Change-Id: I10d922e9ad1ace4300d4bcfea7f48494227f1ff8
This change improves the behaviour of the navigation drawer. It is now
able to automatically close on resize to smaller screen sizes and vice
versa, and also by close by clicking outside the drawer.
Issue: https://github.com/storj/storj/issues/6266
Change-Id: I1aee465a546abbf1369c48f6827b058523c5da21
Implements tryEnableFastOpen by creating a localhost socket and enabling
the TCP_FASTOPEN socket option. On builds where TCP_FASTOPEN isn't
available, setting the socket option fails and tryEnableFastOpen returns
false.
This was verified on a supporting build (latest Windows 10) and an
unsupporting build (Windows 8.1, couldn't find an ISO for an older
Windows 10 build).
Change-Id: I497117dc2f04acdd2b0cc836e20d12d69076b939
Added a new banner to the dashboard of all projects. This banner is displayed when a user meets the following conditions: they have no credit cards on file, they have a payment history with tokens, and their estimated charges are higher than their current balance.
Issue:
https://github.com/storj/storj/issues/6234
Change-Id: I1f90ae81032d459111b111d23ce2e1d8119e649d
This brings in common/grant that doesn't depend on protobuf anymore.
This ends up causing the console wasm bundle from ~11MB to ~4.7MB.
Change-Id: I145dcb9239952a7a9e352c8793c111acb61ff0cc
This change displays the satellite's region in the My Account dropdown
menu of the Vuetify project.
Resolves#6279
Change-Id: Ib7d739c0104fb20ad7ee23234c66813b7f37b3a5
This change separates the loading of usage and charges from other API
calls since that may take long. This will allow the other data to be
displayed while usage and charges are waited on.
Issue: https://github.com/storj/storj/issues/6259
Change-Id: I4a8d8f911baf432d6f1e9eee49176480197ae3ca