Compare commits

...

112 Commits

Author SHA1 Message Date
Cesar N
c96c95924c Release v0.32.0 (#2924) 2023-07-06 10:32:39 -07:00
Alex
f02786001c Migrated Groups Module components to mds (#2923)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-07-05 22:29:17 -06:00
Alex
542b7192c3 Migrated Users Module components to mds (#2920)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-07-05 17:21:07 -07:00
Javier Adriel
b31aa10b52 Refactor to swagger TS API (#2903) 2023-07-05 17:27:46 -06:00
jiuker
1eba59954d fix: websockets goroutine leak for object list UI (#2805)
listen on the done channel to ensure that we can clean up 
the WebSocket go-routine, once the caller is done with
writing the response.
2023-07-05 12:17:54 -07:00
jinapurapu
b71d9f05c5 Updated placeholderimage for offline HelpMenu items (#2916) 2023-06-30 18:35:04 -06:00
Daniel Valdivia
fc5e94d55f Remove Cross compile jobs (#2915) 2023-06-29 18:57:14 -06:00
Alex
3875fb3eaa Release v0.31.0 (#2912)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
Co-authored-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-29 12:21:34 -07:00
Aditya Manthramurthy
b3d4132fe6 Remove goreleaser (#2914)
Not needed any more as standalone console deploys are not supported any more.
2023-06-29 11:15:58 -06:00
Alex
21f20bb9ea Migrated Policies module to mds (#2911)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-28 18:23:58 -06:00
Alex
df937467a0 Fixed Bucket Events Notifications Page (#2906)
- Added missing ilm & replica supported types
- Fixed add screen crash when no arn is selected
- Migrated components to mds

Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-28 15:39:02 -06:00
Alex
d1ae271111 Replaced CodeMirrorWrapper internal components (#2910)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-28 12:05:18 -07:00
Alex
e7fb3e0e45 Updated console dependencies (#2909)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-26 14:12:09 -06:00
dependabot[bot]
b7b0271ec7 Bump fast-xml-parser from 4.2.4 to 4.2.5 in /portal-ui (#2904)
Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 21:41:22 -06:00
jinapurapu
9935b839b7 Help menu cleanup (#2905) 2023-06-22 20:25:06 -06:00
Cesar N
0e11098c31 Upgrade semver version to address vulnerability (#2902) 2023-06-22 17:54:14 -04:00
Daniel Valdivia
c55e0a069b Format number of objects (#2901) 2023-06-22 12:59:16 -07:00
jinapurapu
c3da876b04 Added placeholder image to HelpMenu if links unavailable (#2899) 2023-06-22 12:12:13 -07:00
Alex
643a9c6c7c Updated Audit Logs page to use mds (#2897)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-21 14:32:19 -06:00
Aditya Manthramurthy
0c3a94172d Bump up madmin-go to v3.0.2 (#2896) 2023-06-21 10:51:12 -07:00
Javier Adriel
527eb16700 Refactor to swagger TS API (#2888)
Co-authored-by: Prakash Senthil Vel <23444145+prakashsvmx@users.noreply.github.com>
Co-authored-by: Alex <33497058+bexsoft@users.noreply.github.com>
2023-06-20 12:46:20 -07:00
Alex
e3aec3f094 Updated mds to v0.6.4 (#2895) 2023-06-20 11:49:58 -07:00
Alex
eac2734df4 Update mds to v0.6.2 (#2894) 2023-06-20 11:37:09 -06:00
Allan Roger Reid
a411e7c977 Create bug_report.md (#2893) 2023-06-19 19:58:26 -07:00
Prakash Senthil Vel
28c4abe2d0 audit only the dependencies and exclude dev dependencies in ci for ui (#2892) 2023-06-19 10:55:20 -06:00
Javier Adriel
a9ef6ebf5f Fix download of folders (#2891) 2023-06-19 10:54:18 -06:00
Ali Garajian
c12415c12d Virtualize download/upload object list (#2889) 2023-06-16 13:31:39 -06:00
Cesar N
1f481e690b Add CHANGELOG file for Releases (#2887) 2023-06-15 14:21:27 -07:00
Alex
58aad859e1 Release v0.30.0 (#2886) 2023-06-15 13:13:53 -07:00
jinapurapu
b9ebfe09ee Removed console.log (#2885) 2023-06-15 12:52:24 -06:00
Prakash Senthil Vel
864cf7af99 Apply policy resource restrictions for file extensions (#2842) 2023-06-15 11:33:52 -07:00
Javier Adriel
b76f460979 Remove dead code and add job in CI to find it (#2882) 2023-06-15 10:24:24 -06:00
Cesar N
cbd2c4682d Raise error on upload artifact if no files (#2884)
Raise error on artifact upload if no files to upload

Co-authored-by: cesnietor <>
2023-06-15 09:00:51 -07:00
Javier Adriel
d49bdf7d49 Add staticcheck to console API (#2883) 2023-06-14 21:35:00 -06:00
dependabot[bot]
559a7278a0 Bump github.com/lestrrat-go/jwx from 1.2.25 to 1.2.26 (#2879) 2023-06-14 17:16:17 -06:00
Daniel Valdivia
4a172fae97 Pass Client IP address to MinIO on x-forwarded-for header (#2864) 2023-06-14 12:36:48 -07:00
Cesar N
fc4263e2f9 Define action version to Git action (#2875) 2023-06-13 18:16:46 -06:00
Cesar N
c1b9b4c81b Add Git job to add new issues to project (#2873) 2023-06-13 17:36:21 -06:00
Javier Adriel
aa9b73522e Refactor to swagger ts API (#2860) 2023-06-13 15:00:56 -07:00
Alex
0904f83627 Fix playwright (#2867)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-13 14:43:28 -07:00
Cesar N
253053cc23 Refactor session to avoid duplicate calls to apis (#2868)
Co-authored-by: cesnietor <>
2023-06-13 14:27:48 -07:00
Alex
08a3ff65c7 Updated menu component to use mds (#2866)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-13 15:16:46 -06:00
jinapurapu
ee8fac8be8 Removed debugging line (#2870)
Co-authored-by: Jillian Inapurapu <jillii@Jillians-MacBook-Pro.local>
2023-06-13 11:48:25 -07:00
jinapurapu
9fa49b40b3 Console help menu (#2804)
Authored-by: Jillian Inapurapu <jillii@Jillians-MBP.attlocal.net>
2023-06-12 14:50:25 -07:00
Javier Adriel
de13119e02 Use swagger autogenerated ts API for session endpoint (#2859) 2023-06-12 15:00:40 -06:00
Alex
bf9acd7691 Share File access key / secret key rollback (#2863)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-12 14:02:38 -06:00
Alex
a5066fecc8 Update mds to v0.6.0 (#2862)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-12 11:55:23 -07:00
jinapurapu
6432681440 Minor tooltip fixes (#2861) 2023-06-12 09:54:07 -06:00
jinapurapu
b3b6df9d82 Minor fixes to Config screen tooltips (#2857) 2023-06-08 23:28:28 -06:00
Alex
fe7be4ef62 Fixed an issue with subpaths in resources policies (#2856)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-08 17:37:45 -06:00
Javier Adriel
b4603547f6 Add tests for remote buckets handlers (#2843) 2023-06-08 13:06:49 -06:00
Javier Adriel
b33b9315ea Fix fast-xml-parser vulnerability (#2855) 2023-06-06 11:55:23 -07:00
BlockListed
6ae03fa028 Fix spelling in file sharing menu (#2853) 2023-06-04 12:23:25 -06:00
MinIO Bot
e1bb1e0472 mds-released-v0.5.1 (#2851) 2023-06-02 20:45:08 -06:00
Alex
411670e4f5 Release v0.29.0 (#2850)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
Co-authored-by: Benjamin Perez <benjamin@bexsoft.net>
2023-06-02 13:51:48 -07:00
Alex
1c55932f84 Updated console dependencies (#2849) 2023-06-02 12:58:07 -06:00
Kaan Kabalak
5a77054d6b Update Service Acct fns based on new ListServiceAccounts type (#2824)
* Update Service Acct fns based on new ListServiceAccounts type
2023-05-30 10:30:02 -07:00
Alex
84c5fd58f9 Display error snack bar on raw policy edit error (#2841)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-05-29 18:05:42 -06:00
Daniel Valdivia
98979911ee Move Login to Typescript Swagger API (#2839)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2023-05-29 13:52:29 -07:00
Alex
c0cf7358c7 Removed hardcoded background in access keys table (#2837)
## What does this do?

Removed non required classes from access keys table

Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-05-28 18:47:10 -07:00
Alex
9053e64dff Fixed multiselection of items after deleting one service account (#2836) 2023-05-26 16:58:01 -06:00
Alex
57bfe97d08 Release v0.28.0 (#2831) 2023-05-26 13:42:42 -07:00
Alex
028570279c Migrated Access Keys page components to mds (#2834)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-05-26 11:24:34 -06:00
MinIO Bot
bda1cd1f25 mds-released-V0.4.3 (#2830)
Co-authored-by: MinIO Bot <minio.bot@minio.io>
2023-05-24 11:37:48 -07:00
Alex
7a9b775b09 Changed Share Object logic to use Access Keys (#2827)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-05-24 10:52:40 -07:00
Daniel Valdivia
17e791afb9 Replace RIGHT-TO-LEFT OVERRIDE unicode (#2828)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2023-05-23 09:47:12 -06:00
Daniel Valdivia
920fc7d937 Fix Subpath behavior (#2818)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2023-05-22 12:30:59 -07:00
GeekTR
6e314a2fa5 Fix crash when backend has no rrSCParity property (#2826) 2023-05-22 13:14:41 -06:00
Alex
dc90db6591 Changed SSO Login screen to hide login form by default (#2807)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-05-22 11:20:45 -06:00
Prakash Senthil Vel
beed4895c1 Apply permission check for create accesskey button (#2822) 2023-05-22 09:26:31 -07:00
Prakash Senthil Vel
629dd669c4 Fix anonymous access rule not displayed due to style (#2820) 2023-05-18 10:54:21 -06:00
Alex
fc9319e55b Added identifier field to Event destinations page & migrated to mds (#2816) 2023-05-16 20:21:31 -06:00
Alex
58b64a5739 Fixed an issue with allowResources & KeyBar (#2817) 2023-05-16 16:53:32 -06:00
Javier Adriel
d93537261e Fix download of large files in Console (#2773) 2023-05-15 11:31:43 -07:00
Prakash Senthil Vel
22ec87d00e improve playwright tests with refactoring and clean up (#2809) 2023-05-15 10:02:40 -06:00
MinIO Bot
b87b4156e7 mds-released-v0.4.2 (#2815)
Co-authored-by: MinIO Bot <minio.bot@minio.io>
2023-05-12 18:55:23 -06:00
Alex
93f010b880 Release v0.27.0 (#2813)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
Co-authored-by: Benjamin Perez <benjamin@bexsoft.net>
2023-05-10 21:33:38 -07:00
Prakash Senthil Vel
c5d4cdf1bc fix to show or hide show deleted objects option based on versioning status (#2780) 2023-05-10 11:36:49 -06:00
Anis Eleuch
c117601e53 Update madmin-go to 2.1.1 (#2810)
Update madmin-go library + github.com/minio/mc

Also update the code to work with the library update

Co-authored-by: Anis Elleuch <anis@min.io>
2023-05-09 10:49:51 -07:00
MinIO Bot
f78f838ed9 mds-released-v0.4.1 (#2808)
Co-authored-by: MinIO Bot <minio.bot@minio.io>
2023-05-09 10:03:49 -06:00
Alex
1583b69fb7 Made Service Account creation consistent with mc (#2801) 2023-05-03 12:33:21 -06:00
Alex
cde6d1b0e0 Added Disable login animation with env variable (#2799)
Set CONSOLE_ANIMATED_LOGIN=off env variable before running Console binary

Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-05-03 11:36:41 -06:00
Alex
be60569a14 Changed Object Browser components to use new mds components (#2796) 2023-05-02 17:29:21 -07:00
Alex
51226a74d0 Release v0.26.4 (#2798)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-05-02 18:01:09 -06:00
Daniel Valdivia
e983473a54 Upgrade Go Dependencies (#2786)
Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
2023-05-02 14:35:22 -06:00
Kaan Kabalak
211ab3fd9d Fix incorrect logo appearing for Standard License holders (#2797) 2023-05-01 14:50:01 -06:00
Javier Adriel
90c8ea7f09 Use PageLayout from mds (#2789) 2023-04-29 21:16:09 -06:00
Alex
fb5193d896 Updated mds to v0.4.0 (#2794) 2023-04-27 19:50:21 -06:00
Alex
f7a7f01d7d Fixed issue while getting locking status of a bucket (#2790)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-26 09:59:58 -06:00
Javier Adriel
2c84a52937 Use FormLayout from mds (#2788) 2023-04-25 14:22:49 -06:00
Cesar Celis Hernandez
6020590b2f Make playwright run faster (#2737) 2023-04-25 09:19:00 -07:00
Alex
1477def4fe Updated Console UI dependencies (#2787)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-24 23:19:22 -07:00
Javier Adriel
8882f1da0e Fix yaml vulnerability (#2785)
Bump yaml package version to 2.2.2 to address unhandled exception [CVE-2023-2251](https://nvd.nist.gov/vuln/detail/CVE-2023-2251)

More details on https://github.com/advisories/GHSA-f9xv-q969-pqx4
2023-04-24 16:40:17 -07:00
Cesar N
056d487f1c Show progress bar when loading Usage Info (#2784) 2023-04-19 22:06:16 -06:00
Cesar N
b8083215b3 Update Dev Docs with MinIO naming conventions (#2783) 2023-04-19 11:12:21 -07:00
Cesar N
61c864e748 Update Dev Documentation (#2781) 2023-04-19 10:47:15 -06:00
Javier Adriel
0e0f5030da Remove health diagnostic warning (#2779) 2023-04-17 17:00:03 -06:00
Alex
0dacc4d49e Changed breadcrumbs back button behavior (#2776)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-12 17:23:04 -06:00
Alex
4d783c5e42 Added Object Version read-only field in Edit Lifecycle Modal (#2772) 2023-04-11 17:33:16 -06:00
Alex
75b3a6bea4 Fixed Object Version selector visibility in Add Lifecycle Rule modal (#2769)
- Fixed Object Version selector visibility in Add Lifecycle Rule modal
- Changed definition in swagger file to match camelCase standard
- Added a playwright test case to avoid this issue in the future

Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-11 11:01:03 +02:00
Alex
29507cda7e Updated xml2js library (#2770)
## What does this do?

Updated xml2js library for tests in console. Will fix this in minio-js
as well in an upcoming PR

## How does it look?
<img width="391" alt="Screenshot 2023-04-10 at 21 58 04"
src="https://user-images.githubusercontent.com/33497058/231052457-dac4b376-d1b8-4fd2-80e2-10892f8a453d.png">

Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
Co-authored-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-11 10:36:03 +02:00
Alex
81e0c82fee Changed GitHub labels (#2768)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-10 14:05:08 -06:00
Alex
7519fad6dd Release v0.26.3 (#2764)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-06 09:45:15 -07:00
Prakash Senthil Vel
248a59ee8c compliance license faq updated (#2762) 2023-04-06 10:11:34 -06:00
Alex
cefb6d3c95 Release v0.26.2 (#2761)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
Co-authored-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-05 14:12:30 -07:00
Alex
543076eaac Release v0.26.1 (#2759)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
Co-authored-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-05 13:11:39 -07:00
Alex
cbf1ddeb4c Added support for root credentials login with LDAP enabled (#2758)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-04 15:38:32 -06:00
Daniel Valdivia
3746adcc13 Update Login Message (#2757) 2023-04-04 12:24:10 +02:00
Alex
854b984850 Display explicit errors if websocket connection cannot be stablished (#2756)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-04-03 18:10:59 -06:00
Alex
62fa0e2043 Updated Entities results panel styles (#2753)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2023-03-31 22:09:37 -06:00
Javier Adriel
4f5b1b0aa7 Show modal to restart minio after subnet register (#2752) 2023-03-31 17:31:54 -06:00
MinIO Bot
0e362c2106 mds-released-v0.3.3 (#2750)
Co-authored-by: MinIO Bot <minio.bot@minio.io>
2023-03-30 14:11:56 +09:00
866 changed files with 17490 additions and 16077 deletions

48
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,48 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: community, triage
assignees: ''
---
## NOTE
If this case is urgent, please subscribe to [Subnet](https://min.io/pricing) so that our 24/7 support team may help you faster.
<!--- Provide a general summary of the issue in the title above -->
## Expected Behavior
<!--- If you're describing a bug, tell us what should happen -->
<!--- If you're suggesting a change/improvement, tell us how it should work -->
## Current Behavior
<!--- If describing a bug, tell us what happens instead of the expected behavior -->
<!--- If suggesting a change/improvement, explain the difference from current behavior -->
## Possible Solution
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
<!--- or ideas how to implement the addition or change -->
## Steps to Reproduce (for bugs)
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Context
<!--- How has this issue affected you? What are you trying to accomplish? -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Regression
<!-- Is this issue a regression? (Yes / No) -->
<!-- If Yes, optionally please include the MinIO version or commit id or PR# that caused this regression, if you have these details. -->
## Your Environment
<!--- Include as many relevant details about the environment you experienced the bug in -->
* MinIO version used (`minio --version`):
* Server setup and configuration:
* Operating System and version (`uname -a`):

166
.github/workflows/cross-compile.yaml vendored Normal file
View File

@@ -0,0 +1,166 @@
# @format
name: Cross Compile
on:
pull_request:
branches:
- master
paths:
- go.sum
# This ensures that previous jobs for the PR are canceled when the PR is
# updated.
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true
jobs:
cross-compile-1:
name: Cross compile
needs:
- lint-job
- ui-assets
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make crosscompile arg1="'linux/ppc64le linux/mips64'"
cross-compile-2:
name: Cross compile 2
needs:
- lint-job
- ui-assets
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make crosscompile arg1="'linux/arm64 linux/s390x'"
cross-compile-3:
name: Cross compile 3
needs:
- lint-job
- ui-assets
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make crosscompile arg1="'darwin/amd64 freebsd/amd64'"
cross-compile-4:
name: Cross compile 4
needs:
- lint-job
- ui-assets
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make crosscompile arg1="'windows/amd64 linux/arm'"
cross-compile-5:
name: Cross compile 5
needs:
- lint-job
- ui-assets
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make crosscompile arg1="'linux/386 netbsd/amd64'"

18
.github/workflows/issues.yaml vendored Normal file
View File

@@ -0,0 +1,18 @@
# @format
name: Issue Workflow
on:
issues:
types:
- opened
jobs:
add-to-project:
name: Add issue to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.5.0
with:
project-url: https://github.com/orgs/miniohq/projects/2
github-token: ${{ secrets.BOT_PAT }}

View File

@@ -1,3 +1,5 @@
# @format
name: Workflow
on:
@@ -15,15 +17,13 @@ concurrency:
cancel-in-progress: true
jobs:
lint-job:
name: Checking Lint
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -47,7 +47,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ 1.20.x ]
go-version: [1.20.x]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -67,7 +67,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
os: [ ubuntu-latest ]
os: [ubuntu-latest]
steps:
- name: Check out source code
uses: actions/checkout@v3
@@ -80,14 +80,13 @@ jobs:
pip3 install semgrep
semgrep --config semgrep.yaml $(pwd)/portal-ui --error
ui-assets:
name: "React Code Has No Warnings & Prettified"
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -97,7 +96,7 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NVMRC }}
cache: 'yarn'
cache: "yarn"
cache-dependency-path: portal-ui/yarn.lock
- uses: actions/cache@v3
id: assets-cache
@@ -121,13 +120,18 @@ jobs:
continue-on-error: false
run: |
./check-prettier.sh
- name: Check for dead code
working-directory: ./portal-ui
continue-on-error: false
run: |
./check-deadcode.sh
reuse-golang-dependencies:
name: reuse golang dependencies
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -146,10 +150,10 @@ jobs:
latest-minio:
name: Build latest MinIO
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
strategy:
matrix:
go-version: [ 1.20.x ]
go-version: [1.20.x]
steps:
# To build minio image, we need to clone the repository first
- name: Clone github.com/minio/minio
@@ -184,8 +188,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -215,9 +219,7 @@ jobs:
GOOS: linux
run: |
make console
react-code-known-vulnerabilities:
name: "React Code Has No Known Vulnerable Deps"
needs:
@@ -225,32 +227,32 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NVMRC }}
cache: 'yarn'
cache: "yarn"
cache-dependency-path: portal-ui/yarn.lock
- name: Checks for known security issues with the installed packages
working-directory: ./portal-ui
continue-on-error: false
run: |
yarn audit
yarn audit --groups dependencies
all-permissions-1:
name: Permissions Tests Part 1
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
timeout-minutes: 10
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -292,12 +294,12 @@ jobs:
name: Permissions Tests Part 2
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
timeout-minutes: 10
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -338,12 +340,12 @@ jobs:
name: Permissions Tests Part 3
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
timeout-minutes: 10
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -380,17 +382,16 @@ jobs:
run: |
make cleanup-permissions
all-permissions-4:
name: Permissions Tests Part 4
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
timeout-minutes: 15
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -426,11 +427,11 @@ jobs:
name: Permissions Tests Part 5
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -466,11 +467,11 @@ jobs:
name: Permissions Tests Part 6
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -506,11 +507,11 @@ jobs:
name: Permissions Tests Part 7
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -546,11 +547,11 @@ jobs:
name: Permissions Tests Part 8
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -586,11 +587,11 @@ jobs:
name: Permissions Tests Part 9
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -631,11 +632,11 @@ jobs:
name: Permissions Tests Part A
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -676,11 +677,11 @@ jobs:
name: Permissions Tests Part B
needs:
- compile-binary
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -717,160 +718,6 @@ jobs:
run: |
make cleanup-permissions
cross-compile-1:
name: Cross compile
needs:
- lint-job
- ui-assets
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make crosscompile arg1="'linux/ppc64le linux/mips64'"
cross-compile-2:
name: Cross compile 2
needs:
- lint-job
- ui-assets
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make crosscompile arg1="'linux/arm64 linux/s390x'"
cross-compile-3:
name: Cross compile 3
needs:
- lint-job
- ui-assets
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make crosscompile arg1="'darwin/amd64 freebsd/amd64'"
cross-compile-4:
name: Cross compile 4
needs:
- lint-job
- ui-assets
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make crosscompile arg1="'windows/amd64 linux/arm'"
cross-compile-5:
name: Cross compile 5
needs:
- lint-job
- ui-assets
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make crosscompile arg1="'linux/386 netbsd/amd64'"
test-pkg-on-go:
name: Test Pkg on Go ${{ matrix.go-version }} and ${{ matrix.os }}
needs:
@@ -881,8 +728,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -918,8 +765,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -931,7 +778,6 @@ jobs:
cache: true
id: go
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
@@ -958,7 +804,7 @@ jobs:
strategy:
matrix:
go-version: [ 1.20.x ]
go-version: [1.20.x]
steps:
- name: Check out code
@@ -967,7 +813,7 @@ jobs:
uses: actions/checkout@master
with:
repository: minio/minio
path: 'minio_repository'
path: "minio_repository"
- uses: actions/cache@v3
id: minio-latest-cache
name: MinIO Latest Cache
@@ -1003,7 +849,7 @@ jobs:
echo "We are going to use the built image on test-integration";
VERSION="minio/minio:$VERSION";
echo $VERSION;
echo "Create bucket for replication with versioning"
echo "Download mc for Ubuntu"
wget -q https://dl.min.io/client/mc/release/linux-amd64/mc
@@ -1036,7 +882,6 @@ jobs:
working-directory: ./portal-ui
run: yarn test
replication:
name: Site Replication Test
needs:
- lint-job
@@ -1044,11 +889,11 @@ jobs:
- reuse-golang-dependencies
- semgrep-static-code-analysis
- latest-minio
runs-on: [ ubuntu-latest ]
runs-on: [ubuntu-latest]
strategy:
matrix:
go-version: [ 1.20.x ]
go-version: [1.20.x]
steps:
- name: Check out code
@@ -1065,7 +910,7 @@ jobs:
uses: actions/checkout@master
with:
repository: minio/minio
path: 'minio_repository'
path: "minio_repository"
- uses: actions/cache@v3
id: minio-latest-cache
name: MinIO Latest Cache
@@ -1110,8 +955,8 @@ jobs:
with:
name: replication-artifact
path: ./replication/coverage/replication.out
if-no-files-found: error
sso-integration:
name: SSO Integration Test
needs:
- lint-job
@@ -1123,7 +968,7 @@ jobs:
strategy:
matrix:
go-version: [ 1.20.x ]
go-version: [1.20.x]
steps:
- name: Check out code
@@ -1140,7 +985,7 @@ jobs:
uses: actions/checkout@master
with:
repository: minio/minio
path: 'minio_repository'
path: "minio_repository"
- uses: actions/cache@v3
id: minio-latest-cache
name: MinIO Latest Cache
@@ -1194,8 +1039,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.20.x ]
os: [ ubuntu-latest ]
go-version: [1.20.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
@@ -1298,7 +1143,7 @@ jobs:
go tool cover -func=all.out | grep total > tmp2
result=`cat tmp2 | awk 'END {print $3}'`
result=${result%\%}
threshold=69.4
threshold=71.4
echo "Result:"
echo "$result%"
if (( $(echo "$result >= $threshold" |bc -l) )); then
@@ -1308,9 +1153,92 @@ jobs:
exit 1
fi
ui-assets-istanbul-coverage:
name: "Assets with Istanbul Plugin for coverage"
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [1.19.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Read .nvmrc
id: node_version
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NVMRC }}
cache: "yarn"
cache-dependency-path: portal-ui/yarn.lock
- uses: actions/cache@v3
id: assets-cache-istanbul-coverage
name: Assets Cache Istanbul Coverage
with:
path: |
./portal-ui/build/
key: ${{ runner.os }}-assets-istanbul-coverage-${{ github.run_id }}
- name: Install Dependencies
working-directory: ./portal-ui
continue-on-error: false
run: |
yarn install --frozen-lockfile --immutable
- name: Check for Warnings in build output
working-directory: ./portal-ui
continue-on-error: false
run: |
./check-warnings-istanbul-coverage.sh
- name: Check if Files are Prettified
working-directory: ./portal-ui
continue-on-error: false
run: |
./check-prettier.sh
compile-binary-istanbul-coverage:
name: "Compile Console Binary with Istanbul Plugin for Coverage"
needs:
- lint-job
- ui-assets-istanbul-coverage
- reuse-golang-dependencies
- semgrep-static-code-analysis
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [1.19.x]
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- uses: actions/cache@v3
name: Console Binary Cache Istanbul Coverage
with:
path: |
./console
key: ${{ runner.os }}-binary-istanbul-coverage-${{ github.run_id }}
- uses: actions/cache@v3
id: assets-cache-istanbul-coverage
name: Assets Cache Istanbul Coverage
with:
path: |
./portal-ui/build/
key: ${{ runner.os }}-assets-istanbul-coverage-${{ github.run_id }}
- name: Build on ${{ matrix.os }}
env:
GO111MODULE: on
GOOS: linux
run: |
make console
playwright:
needs:
- compile-binary
- compile-binary-istanbul-coverage
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
@@ -1328,8 +1256,8 @@ jobs:
yarn add -D nyc
yarn add -D react-app-rewired
yarn add -D create-react-app
yarn add -D @playwright/test
yarn init -y
yarn add --dev @playwright/test
echo "yarn install"
yarn install
@@ -1337,25 +1265,22 @@ jobs:
run: npx playwright install --with-deps
- uses: actions/cache@v3
name: Console Binary Cache
name: Console Binary Cache Istanbul Coverage
with:
path: |
./console
key: ${{ runner.os }}-binary-${{ github.run_id }}
key: ${{ runner.os }}-binary-istanbul-coverage-${{ github.run_id }}
- name: Start Console, front-end app and initialize users/policies
run: |
(./console server) & (make initialize-permissions)
- name: Start Browser at port 5005
run: |
echo "yarn playwright"
(cd $GITHUB_WORKSPACE/portal-ui; yarn playwright) & (sleep 120) # To start port 5005 with Istanbul Plugin Injected
- name: Run Playwright tests
run: |
echo "Run tests under playwright folder only"
cd $GITHUB_WORKSPACE/portal-ui
yarn remove playwright
yarn add --dev @playwright/test
echo "npx playwright test"
npx playwright test # To run the tests
echo "npx nyc report"

View File

@@ -23,8 +23,8 @@ linters:
- gomodguard
- gofmt
- unused
- staticcheck
- unconvert
- varcheck
- gocritic
- gofumpt
- durationcheck

View File

@@ -1,191 +0,0 @@
# This is an example goreleaser.yaml file with some sane defaults.
# Make sure to check the documentation at http://goreleaser.com
project_name: console
release:
name_template: "Release version {{.Tag}}"
github:
owner: minio
name: console
extra_files:
- glob: "*.minisig"
before:
hooks:
# you may remove this if you don't use vgo
- go mod tidy -compat=1.19
builds:
- goos:
- linux
- darwin
- windows
goarch:
- amd64
- ppc64le
- s390x
- arm64
ignore:
- goos: darwin
goarch: arm
- goos: windows
goarch: arm64
- goos: windows
goarch: arm
env:
- CGO_ENABLED=0
main: ./cmd/console/
flags:
- -trimpath
- --tags=kqueue,operator
ldflags:
- -s -w -X github.com/minio/console/pkg.ReleaseTag={{.Tag}} -X github.com/minio/console/pkg.CommitID={{.FullCommit}} -X github.com/minio/console/pkg.Version={{.Version}} -X github.com/minio/console/pkg.ShortCommitID={{.ShortCommit}} -X github.com/minio/console/pkg.ReleaseTime={{.Date}}
archives:
- name_template: "{{ .ProjectName }}-{{ .Os }}-{{ .Arch }}"
format: binary
replacements:
arm: arm
signs:
- signature: "${artifact}.minisig"
cmd: "sh"
args:
- '-c'
- 'minisign -s /media/${USER}/minio/minisign.key -Sm ${artifact} < /media/${USER}/minio/minisign-passphrase'
artifacts: all
snapshot:
name_template: v0.0.0@{{.ShortCommit}}
changelog:
sort: asc
nfpms:
- vendor: MinIO, Inc.
homepage: https://github.com/minio/console
maintainer: MinIO Development <dev@min.io>
description: MinIO Console Server
license: GNU Affero General Public License v3.0
formats:
- deb
- rpm
contents:
# Basic file that applies to all packagers
- src: systemd/console.service
dst: /etc/systemd/system/minio-console.service
dockers:
- image_templates:
- "minio/console:{{ .Tag }}-amd64"
use: buildx
goarch: amd64
dockerfile: Dockerfile.release
extra_files:
- LICENSE
- CREDITS
build_flag_templates:
- "--platform=linux/amd64"
- "--build-arg=TAG={{ .Tag }}"
- image_templates:
- "minio/console:{{ .Tag }}-ppc64le"
use: buildx
goarch: ppc64le
dockerfile: Dockerfile.release
extra_files:
- LICENSE
- CREDITS
build_flag_templates:
- "--platform=linux/ppc64le"
- "--build-arg=TAG={{ .Tag }}"
- image_templates:
- "minio/console:{{ .Tag }}-s390x"
use: buildx
goarch: s390x
dockerfile: Dockerfile.release
extra_files:
- LICENSE
- CREDITS
build_flag_templates:
- "--platform=linux/s390x"
- "--build-arg=TAG={{ .Tag }}"
- image_templates:
- "minio/console:{{ .Tag }}-arm64"
use: buildx
goarch: arm64
goos: linux
dockerfile: Dockerfile.release
extra_files:
- LICENSE
- CREDITS
build_flag_templates:
- "--platform=linux/arm64"
- "--build-arg=TAG={{ .Tag }}"
- image_templates:
- "quay.io/minio/console:{{ .Tag }}-amd64"
use: buildx
goarch: amd64
dockerfile: Dockerfile.release
extra_files:
- LICENSE
- CREDITS
build_flag_templates:
- "--platform=linux/amd64"
- "--build-arg=TAG={{ .Tag }}"
- image_templates:
- "quay.io/minio/console:{{ .Tag }}-ppc64le"
use: buildx
goarch: ppc64le
dockerfile: Dockerfile.release
extra_files:
- LICENSE
- CREDITS
build_flag_templates:
- "--platform=linux/ppc64le"
- "--build-arg=TAG={{ .Tag }}"
- image_templates:
- "quay.io/minio/console:{{ .Tag }}-s390x"
use: buildx
goarch: s390x
dockerfile: Dockerfile.release
extra_files:
- LICENSE
- CREDITS
build_flag_templates:
- "--platform=linux/s390x"
- "--build-arg=TAG={{ .Tag }}"
- image_templates:
- "quay.io/minio/console:{{ .Tag }}-arm64"
use: buildx
goarch: arm64
goos: linux
dockerfile: Dockerfile.release
extra_files:
- LICENSE
- CREDITS
build_flag_templates:
- "--platform=linux/arm64"
- "--build-arg=TAG={{ .Tag }}"
docker_manifests:
- name_template: minio/console:{{ .Tag }}
image_templates:
- minio/console:{{ .Tag }}-amd64
- minio/console:{{ .Tag }}-arm64
- minio/console:{{ .Tag }}-ppc64le
- minio/console:{{ .Tag }}-s390x
- name_template: quay.io/minio/console:{{ .Tag }}
image_templates:
- quay.io/minio/console:{{ .Tag }}-amd64
- quay.io/minio/console:{{ .Tag }}-arm64
- quay.io/minio/console:{{ .Tag }}-ppc64le
- quay.io/minio/console:{{ .Tag }}-s390x
- name_template: minio/console:latest
image_templates:
- minio/console:{{ .Tag }}-amd64
- minio/console:{{ .Tag }}-arm64
- minio/console:{{ .Tag }}-ppc64le
- minio/console:{{ .Tag }}-s390x

44
CHANGELOG.md Normal file
View File

@@ -0,0 +1,44 @@
<!-- @format -->
# Changelog
## Release v0.32.0
Features:
- Updated Users and Groups components
- Added placeholder image for Help Menu
Bug Fix:
- Fixed memory leak in WebSocket API for Object Browser
---
## Release v0.31.0
*Breaking Changes:*
- *Removed support for Standalone Deployments*
Features:
- Updated way files are displayed in uploading component
- Updated Audit Logs and Policies components
Bug Fix:
- Fixed Download folders issue in Object Browser
- Added missing Notification Events (ILM & REPLICA) in Events Notification Page
- Fixed Security Vulnerability for `semver` dependency
---
## Release v0.30.0
Features:
- Added MinIO Console Help Menu
- Updated UI Menu components
Bug Fix:
- Disable the Upload button on Object Browser if the user is not allowed
- Fixed security vulnerability for `lestrrat-go/jwx` and `fast-xml-parser`
- Fixed bug on sub-paths for Object Browser
- Reduce the number of calls to `/session` API endpoint to improve performance
- Rolled back the previous change for the Share File feature to no longer ask for Service Account access keys

View File

@@ -1,3 +1,27 @@
# Developing MinIO Console
The MinIO Console requires the [MinIO Server](https://github.com/minio/minio). For development purposes, you also need to run both the MinIO Console web app and the MinIO Console server.
## Running MinIO Console server
Build the server in the main folder by running:
```
make
```
> Note: If it's the first time running the server, you might need to run `go mod tidy` to ensure you have all modules required.
To start the server run:
```
CONSOLE_ACCESS_KEY=<your-access-key>
CONSOLE_SECRET_KEY=<your-secret-key>
CONSOLE_MINIO_SERVER=<minio-server-endpoint>
CONSOLE_DEV_MODE=on
./console server
```
## Running MinIO Console web app
Refer to `/portal-ui` [instructions](/portal-ui/README.md) to run the web app locally.
# Building with MinIO
To test console in its shipping format, you need to build it from the MinIO repository, the following step will guide

View File

@@ -1,76 +0,0 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
package cluster
import (
directpvclient "github.com/minio/directpv/pkg/client"
operator "github.com/minio/operator/pkg/client/clientset/versioned"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
certutil "k8s.io/client-go/util/cert"
)
// getTLSClientConfig will return the right TLS configuration for the K8S client based on the configured TLS certificate
func getTLSClientConfig() rest.TLSClientConfig {
defaultRootCAFile := "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
customRootCAFile := getK8sAPIServerTLSRootCA()
tlsClientConfig := rest.TLSClientConfig{}
// if console is running inside k8s by default he will have access to the CA Cert from the k8s local authority
if _, err := certutil.NewPool(defaultRootCAFile); err == nil {
tlsClientConfig.CAFile = defaultRootCAFile
}
// if the user explicitly define a custom CA certificate, instead, we will use that
if customRootCAFile != "" {
if _, err := certutil.NewPool(customRootCAFile); err == nil {
tlsClientConfig.CAFile = customRootCAFile
}
}
return tlsClientConfig
}
// This operation will run only once at console startup
var tlsClientConfig = getTLSClientConfig()
func GetK8sConfig(token string) *rest.Config {
config := &rest.Config{
Host: GetK8sAPIServer(),
TLSClientConfig: tlsClientConfig,
APIPath: "/",
BearerToken: token,
}
return config
}
// OperatorClient returns an operator client using GetK8sConfig for its config
func OperatorClient(token string) (*operator.Clientset, error) {
return operator.NewForConfig(GetK8sConfig(token))
}
// K8sClient returns kubernetes client using GetK8sConfig for its config
func K8sClient(token string) (*kubernetes.Clientset, error) {
return kubernetes.NewForConfig(GetK8sConfig(token))
}
// DirectPV interfaces required to fetch information
func DirectPVDriveInterface(token string) (*directpvclient.DirectCSIDriveInterface, error) {
return directpvclient.DirectCSIDriveInterfaceForConfig(GetK8sConfig(token))
}
func DirectPVVolumeInterface(token string) (*directpvclient.DirectCSIVolumeInterface, error) {
return directpvclient.DirectCSIVolumeInterfaceForConfig(GetK8sConfig(token))
}

View File

@@ -1,83 +0,0 @@
// This file is part of MinIO Console Server
// Copyright (c) 2021 MinIO, Inc.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
package cluster
import (
"io/ioutil"
"net"
"strings"
"time"
xhttp "github.com/minio/console/pkg/http"
"github.com/minio/console/restapi"
"github.com/minio/console/pkg/utils"
"github.com/minio/pkg/env"
)
func GetK8sAPIServer() string {
// if console is running inside a k8s pod KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT will contain the k8s api server apiServerAddress
// if console is not running inside k8s by default will look for the k8s api server on localhost:8001 (kubectl proxy)
// NOTE: using kubectl proxy is for local development only, since every request send to localhost:8001 will bypass service account authentication
// more info here: https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/#directly-accessing-the-rest-api
// you can override this using CONSOLE_K8S_API_SERVER, ie use the k8s cluster from `kubectl config view`
host, port := env.Get("KUBERNETES_SERVICE_HOST", ""), env.Get("KUBERNETES_SERVICE_PORT", "")
apiServerAddress := "http://localhost:8001"
if host != "" && port != "" {
apiServerAddress = "https://" + net.JoinHostPort(host, port)
}
return env.Get(ConsoleK8sAPIServer, apiServerAddress)
}
// If CONSOLE_K8S_API_SERVER_TLS_ROOT_CA is true console will load the certificate into the
// http.client rootCAs pool, this is useful for testing an k8s ApiServer or when working with self-signed certificates
func getK8sAPIServerTLSRootCA() string {
return strings.TrimSpace(env.Get(ConsoleK8SAPIServerTLSRootCA, ""))
}
// GetNsFromFile assumes console is running inside a k8s pod and extract the current namespace from the
// /var/run/secrets/kubernetes.io/serviceaccount/namespace file
func GetNsFromFile() string {
dat, err := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace")
if err != nil {
return "default"
}
return string(dat)
}
// GetMinioImage returns the image URL to be used when deploying a MinIO instance, if there is
// a preferred image to be used (configured via ENVIRONMENT VARIABLES) GetMinioImage will return that
// if not, GetMinioImage will try to obtain the image URL for the latest version of MinIO and return that
func GetMinioImage() (*string, error) {
image := strings.TrimSpace(env.Get(ConsoleMinioImage, ""))
// if there is a preferred image configured by the user we'll always return that
if image != "" {
return &image, nil
}
client := restapi.GetConsoleHTTPClient("")
client.Timeout = 5 * time.Second
latestMinIOImage, errLatestMinIOImage := utils.GetLatestMinIOImage(
&xhttp.Client{
Client: client,
})
if errLatestMinIOImage != nil {
return nil, errLatestMinIOImage
}
return latestMinIOImage, nil
}

View File

@@ -41,8 +41,9 @@ func StartServer(ctx *cli.Context) error {
}
xctx := context.Background()
transport := restapi.PrepareSTSClientTransport(false)
if err := logger.InitializeLogger(xctx, transport); err != nil {
transport := restapi.PrepareSTSClientTransport(false, restapi.LocalAddress)
if err := logger.InitializeLogger(xctx, transport.Transport); err != nil {
fmt.Println("error InitializeLogger", err)
logger.CriticalIf(xctx, err)
}

View File

@@ -18,7 +18,7 @@ package main
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"syscall"
@@ -163,7 +163,7 @@ func loadAllCerts(ctx *cli.Context) error {
// load ca cert from swagger server tls-ca flag
if swaggerServerCACertificate != "" {
caCert, caCertErr := ioutil.ReadFile(swaggerServerCACertificate)
caCert, caCertErr := os.ReadFile(swaggerServerCACertificate)
if caCertErr == nil {
restapi.GlobalRootCAs.AppendCertsFromPEM(caCert)
}

90
go.mod
View File

@@ -9,43 +9,37 @@ require (
github.com/fatih/color v1.15.0
github.com/go-openapi/errors v0.20.3
github.com/go-openapi/loads v0.21.2
github.com/go-openapi/runtime v0.25.0
github.com/go-openapi/spec v0.20.8
github.com/go-openapi/strfmt v0.21.5
github.com/go-openapi/runtime v0.26.0
github.com/go-openapi/spec v0.20.9
github.com/go-openapi/strfmt v0.21.7
github.com/go-openapi/swag v0.22.3
github.com/go-openapi/validate v0.22.1
github.com/golang-jwt/jwt/v4 v4.5.0
github.com/google/uuid v1.3.0
github.com/jessevdk/go-flags v1.5.0
github.com/klauspost/compress v1.16.3
github.com/klauspost/compress v1.16.5
github.com/minio/cli v1.24.2
github.com/minio/directpv v1.4.4-0.20220805090942-948ca4731651
github.com/minio/highwayhash v1.0.2
github.com/minio/kes v0.22.3
github.com/minio/madmin-go/v2 v2.0.17
github.com/minio/mc v0.0.0-20230323200304-81453d7c8fcc
github.com/minio/minio-go/v7 v7.0.50
github.com/minio/operator v0.0.0-20230228004026-ad024a9dffe5
github.com/minio/pkg v1.6.5
github.com/minio/madmin-go/v3 v3.0.2
github.com/minio/mc v0.0.0-20230619193119-5f39522e6902
github.com/minio/minio-go/v7 v7.0.58-0.20230622175401-7048a16cfbca
github.com/minio/pkg v1.7.5
github.com/minio/selfupdate v0.6.0
github.com/minio/websocket v1.6.0
github.com/mitchellh/go-homedir v1.1.0
github.com/rs/xid v1.4.0
github.com/rs/xid v1.5.0
github.com/secure-io/sio-go v0.3.1
github.com/stretchr/testify v1.8.2
github.com/stretchr/testify v1.8.4
github.com/tidwall/gjson v1.14.4
github.com/unrolled/secure v1.13.0
golang.org/x/crypto v0.7.0
golang.org/x/net v0.8.0
golang.org/x/oauth2 v0.6.0
golang.org/x/crypto v0.9.0
golang.org/x/net v0.10.0
golang.org/x/oauth2 v0.7.0
// Added to include security fix for
// https://github.com/golang/go/issues/56152
golang.org/x/text v0.8.0 // indirect
golang.org/x/text v0.9.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
k8s.io/api v0.26.3 // indirect
k8s.io/apimachinery v0.26.3 // indirect
k8s.io/client-go v0.26.3
k8s.io/utils v0.0.0-20230313181309-38a27ef9d749 // indirect
)
require (
@@ -64,32 +58,21 @@ require (
github.com/coreos/go-semver v0.3.1 // indirect
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/emicklei/go-restful/v3 v3.10.2 // indirect
github.com/evanphx/json-patch v5.6.0+incompatible // indirect
github.com/fatih/structs v1.1.0 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/gdamore/encoding v1.0.0 // indirect
github.com/gdamore/tcell/v2 v2.6.0 // indirect
github.com/go-logr/logr v1.2.3 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-openapi/analysis v0.21.4 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/goccy/go-json v0.10.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/gnostic v0.6.9 // indirect
github.com/google/go-cmp v0.5.9 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/imdario/mergo v0.3.15 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jedib0t/go-pretty/v6 v6.4.6 // indirect
github.com/josharian/intern v1.0.0 // indirect
@@ -100,11 +83,10 @@ require (
github.com/lestrrat-go/blackmagic v1.0.1 // indirect
github.com/lestrrat-go/httpcc v1.0.1 // indirect
github.com/lestrrat-go/iter v1.0.2 // indirect
github.com/lestrrat-go/jwx v1.2.25 // indirect
github.com/lestrrat-go/jwx v1.2.26 // indirect
github.com/lestrrat-go/option v1.0.1 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-ieproxy v0.0.1 // indirect
@@ -112,12 +94,10 @@ require (
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.14 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/mb0/glob v0.0.0-20160210091149-1eb79d2de6c4 // indirect
github.com/miekg/dns v1.1.52 // indirect
github.com/minio/colorjson v1.0.4 // indirect
github.com/minio/colorjson v1.0.5 // indirect
github.com/minio/filepath v1.0.0 // indirect
github.com/minio/md5-simd v1.1.2 // indirect
github.com/minio/sha256-simd v1.0.0 // indirect
github.com/minio/sha256-simd v1.0.1 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
@@ -126,11 +106,9 @@ require (
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/reflow v0.3.0 // indirect
github.com/muesli/termenv v0.15.1 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/navidys/tvxwidgets v0.3.0 // indirect
github.com/oklog/ulid v1.3.1 // indirect
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/pelletier/go-toml/v2 v2.0.7 // indirect
github.com/philhofer/fwd v1.1.2 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/xattr v0.4.9 // indirect
@@ -142,17 +120,13 @@ require (
github.com/prometheus/common v0.42.0 // indirect
github.com/prometheus/procfs v0.9.0 // indirect
github.com/prometheus/prom2json v1.3.2 // indirect
github.com/rivo/tview v0.0.0-20230325211341-281d14d896d7 // indirect
github.com/rivo/tview v0.0.0-20230406072732-e22ce9588bb4 // indirect
github.com/rivo/uniseg v0.4.4 // indirect
github.com/rjeczalik/notify v0.9.3 // indirect
github.com/shirou/gopsutil/v3 v3.23.2 // indirect
github.com/sirupsen/logrus v1.9.0 // indirect
github.com/spf13/afero v1.9.5 // indirect
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.15.0 // indirect
github.com/subosito/gotenv v1.4.2 // indirect
github.com/rogpeppe/go-internal v1.10.0 // indirect
github.com/shirou/gopsutil/v3 v3.23.3 // indirect
github.com/shoenig/go-m1cpu v0.1.5 // indirect
github.com/sirupsen/logrus v1.9.2 // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.1 // indirect
github.com/tinylib/msgp v1.1.8 // indirect
@@ -164,26 +138,16 @@ require (
go.etcd.io/etcd/client/v3 v3.5.7 // indirect
go.mongodb.org/mongo-driver v1.11.3 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.10.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.24.0 // indirect
golang.org/x/mod v0.9.0 // indirect
golang.org/x/sync v0.1.0 // indirect
golang.org/x/sys v0.6.0 // indirect
golang.org/x/term v0.6.0 // indirect
golang.org/x/time v0.3.0 // indirect
golang.org/x/tools v0.7.0 // indirect
golang.org/x/sys v0.8.0 // indirect
golang.org/x/term v0.8.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20230327152035-dc694ad2151e // indirect
google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd // indirect
google.golang.org/grpc v1.54.0 // indirect
google.golang.org/protobuf v1.30.0 // indirect
gopkg.in/h2non/filetype.v1 v1.0.5 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/apiextensions-apiserver v0.26.3 // indirect
k8s.io/klog/v2 v2.90.1 // indirect
k8s.io/kube-openapi v0.0.0-20230327201221-f5883ff37f0c // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
)

1130
go.sum

File diff suppressed because it is too large Load Diff

View File

@@ -20,7 +20,7 @@ import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"io"
"log"
"net/http"
"testing"
@@ -56,7 +56,7 @@ func TestLoginStrategy(t *testing.T) {
}
if response != nil {
bodyBytes, _ := ioutil.ReadAll(response.Body)
bodyBytes, _ := io.ReadAll(response.Body)
loginDetails := models.LoginDetails{}

View File

@@ -21,7 +21,7 @@ import (
"encoding/base64"
"encoding/json"
"fmt"
"io/ioutil"
"io"
"log"
"net/http"
"testing"
@@ -630,7 +630,7 @@ func Test_PolicyListUsersAPI(t *testing.T) {
return
}
if response != nil {
bodyBytes, _ := ioutil.ReadAll(response.Body)
bodyBytes, _ := io.ReadAll(response.Body)
assert.Equal(tt.expectedStatus, response.StatusCode, tt.name+" Failed")
if response.StatusCode == 200 {
assert.Equal("[\"policyuser4\"]\n", string(bodyBytes))
@@ -709,7 +709,7 @@ func Test_PolicyListGroupsAPI(t *testing.T) {
return
}
if response != nil {
bodyBytes, _ := ioutil.ReadAll(response.Body)
bodyBytes, _ := io.ReadAll(response.Body)
assert.Equal(tt.expectedStatus, response.StatusCode, tt.name+" Failed")
if response.StatusCode == 200 {
assert.Equal("[\"testgroup12345\"]\n", string(bodyBytes))

View File

@@ -25,7 +25,6 @@ import (
"errors"
"fmt"
"io"
"io/ioutil"
"log"
"net/http"
"os"
@@ -777,7 +776,7 @@ func TestPutObjectsLegalholdStatus(t *testing.T) {
// Get versionID
listResponse, _ := ListObjects(bucketName, prefix, "true")
bodyBytes, _ := ioutil.ReadAll(listResponse.Body)
bodyBytes, _ := io.ReadAll(listResponse.Body)
listObjs := models.ListObjectsResponse{}
err := json.Unmarshal(bodyBytes, &listObjs)
if err != nil {
@@ -1058,7 +1057,7 @@ func TestDeleteObjectsRetentionStatus(t *testing.T) {
// Get versionID
listResponse, _ := ListObjects(bucketName, validPrefix, "true")
bodyBytes, _ := ioutil.ReadAll(listResponse.Body)
bodyBytes, _ := io.ReadAll(listResponse.Body)
listObjs := models.ListObjectsResponse{}
err := json.Unmarshal(bodyBytes, &listObjs)
if err != nil {
@@ -1226,7 +1225,7 @@ func TestRestoreObjectToASelectedVersion(t *testing.T) {
// 3. Get versionID
listResponse, _ := ListObjects(bucketName, validPrefix, "true")
bodyBytes, _ := ioutil.ReadAll(listResponse.Body)
bodyBytes, _ := io.ReadAll(listResponse.Body)
listObjs := models.ListObjectsResponse{}
err := json.Unmarshal(bodyBytes, &listObjs)
if err != nil {
@@ -1443,7 +1442,7 @@ func TestPutObjectsRetentionStatus(t *testing.T) {
// Get versionID
listResponse, _ := ListObjects(bucketName, prefix, "true")
bodyBytes, _ := ioutil.ReadAll(listResponse.Body)
bodyBytes, _ := io.ReadAll(listResponse.Body)
listObjs := models.ListObjectsResponse{}
err := json.Unmarshal(bodyBytes, &listObjs)
if err != nil {
@@ -1776,7 +1775,7 @@ func TestDownloadObject(t *testing.T) {
}
// 4. Verify the file was downloaded
files, err := ioutil.ReadDir(workingDirectory)
files, err := os.ReadDir(workingDirectory)
if err != nil {
log.Fatal(err)
}
@@ -2169,21 +2168,12 @@ func TestListBuckets(t *testing.T) {
// 2. List buckets
listBucketsResponse, listBucketsError := ListBuckets()
assert.Nil(listBucketsError)
if listBucketsError != nil {
log.Println(listBucketsError)
assert.Fail("Error listing the buckets")
return
}
assert.NotNil(listBucketsResponse)
assert.NotNil(listBucketsResponse.Body)
// 3. Verify list of buckets
b, err := io.ReadAll(listBucketsResponse.Body)
if listBucketsResponse != nil {
if err != nil {
log.Fatalln(err)
}
assert.Equal(200, listBucketsResponse.StatusCode,
"Status Code is incorrect: "+string(b))
}
b, _ := io.ReadAll(listBucketsResponse.Body)
assert.Equal(200, listBucketsResponse.StatusCode,
"Status Code is incorrect: "+string(b))
for i := 1; i <= numberOfBuckets; i++ {
assert.True(strings.Contains(string(b),
"testlistbuckets"+strconv.Itoa(i)))
@@ -2215,7 +2205,7 @@ func TestBucketsGet(t *testing.T) {
if response != nil {
assert.Equal(200, response.StatusCode, "Status Code is incorrect")
bodyBytes, _ := ioutil.ReadAll(response.Body)
bodyBytes, _ := io.ReadAll(response.Body)
listBuckets := models.ListBucketsResponse{}
err = json.Unmarshal(bodyBytes, &listBuckets)
@@ -2255,7 +2245,7 @@ func TestBucketVersioning(t *testing.T) {
if response != nil {
bodyBytes, _ := ioutil.ReadAll(response.Body)
bodyBytes, _ := io.ReadAll(response.Body)
sessionResponse := models.SessionResponse{}
err = json.Unmarshal(bodyBytes, &sessionResponse)
@@ -2292,7 +2282,7 @@ func TestBucketVersioning(t *testing.T) {
assert.Equal(
200, getVersioningResult.StatusCode, "Status Code is incorrect")
}
bodyBytes, _ := ioutil.ReadAll(getVersioningResult.Body)
bodyBytes, _ := io.ReadAll(getVersioningResult.Body)
structBucketRepl := models.BucketVersioningResponse{
ExcludeFolders: false,
ExcludedPrefixes: nil,
@@ -2369,7 +2359,7 @@ func TestSetBucketTags(t *testing.T) {
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
request.Header.Add("Content-Type", "application/json")
response, err := client.Do(request)
_, err = client.Do(request)
assert.Nil(err)
if err != nil {
log.Println(err)
@@ -2387,14 +2377,14 @@ func TestSetBucketTags(t *testing.T) {
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
request.Header.Add("Content-Type", "application/json")
response, err = client.Do(request)
response, err := client.Do(request)
assert.Nil(err)
if err != nil {
log.Println(err)
return
}
bodyBytes, _ := ioutil.ReadAll(response.Body)
bodyBytes, _ := io.ReadAll(response.Body)
bucket := models.Bucket{}
err = json.Unmarshal(bodyBytes, &bucket)
@@ -2847,7 +2837,7 @@ func TestReplication(t *testing.T) {
}
// 3. Get rule ID and status from response's body
bodyBytes, _ := ioutil.ReadAll(response.Body)
bodyBytes, _ := io.ReadAll(response.Body)
structBucketRepl := models.BucketReplicationResponse{}
err = json.Unmarshal(bodyBytes, &structBucketRepl)
if err != nil {
@@ -2929,7 +2919,7 @@ func TestReplication(t *testing.T) {
}
// 9. Get rule ID and status from response's body
bodyBytes, _ = ioutil.ReadAll(response.Body)
bodyBytes, _ = io.ReadAll(response.Body)
structBucketRepl = models.BucketReplicationResponse{}
err = json.Unmarshal(bodyBytes, &structBucketRepl)
if err != nil {
@@ -2996,7 +2986,7 @@ func TestReturnsTheStatusOfObjectLockingSupportOnTheBucket(t *testing.T) {
}
// 2. Verify the status to be enabled for this bucket
bodyBytes, _ := ioutil.ReadAll(response.Body)
bodyBytes, _ := io.ReadAll(response.Body)
structBucketLocking := models.BucketObLockingResponse{}
err = json.Unmarshal(bodyBytes, &structBucketLocking)
if err != nil {
@@ -3077,7 +3067,7 @@ func TestSetBucketVersioning(t *testing.T) {
assert.Equal(
200, getVersioningResult.StatusCode, "Status Code is incorrect")
}
bodyBytes, _ := ioutil.ReadAll(getVersioningResult.Body)
bodyBytes, _ := io.ReadAll(getVersioningResult.Body)
result := models.BucketVersioningResponse{
ExcludeFolders: false,
ExcludedPrefixes: nil,
@@ -3160,7 +3150,7 @@ func TestEnableBucketEncryption(t *testing.T) {
assert.Equal(
200, resp.StatusCode, "Status Code is incorrect")
}
bodyBytes, _ := ioutil.ReadAll(resp.Body)
bodyBytes, _ := io.ReadAll(resp.Body)
result := models.BucketEncryptionInfo{}
err = json.Unmarshal(bodyBytes, &result)
if err != nil {
@@ -3192,7 +3182,7 @@ func TestEnableBucketEncryption(t *testing.T) {
assert.Equal(
404, resp.StatusCode, "Status Code is incorrect")
}
bodyBytes, _ = ioutil.ReadAll(resp.Body)
bodyBytes, _ = io.ReadAll(resp.Body)
result2 := models.Error{}
err = json.Unmarshal(bodyBytes, &result2)
if err != nil {
@@ -3437,7 +3427,7 @@ func TestBucketLifeCycle(t *testing.T) {
assert.Equal(
200, resp.StatusCode, "Status Code is incorrect")
}
bodyBytes, _ := ioutil.ReadAll(resp.Body)
bodyBytes, _ := io.ReadAll(resp.Body)
result := models.BucketLifecycleResponse{}
err = json.Unmarshal(bodyBytes, &result)
if err != nil {
@@ -3483,7 +3473,7 @@ func TestBucketLifeCycle(t *testing.T) {
assert.Equal(
200, resp.StatusCode, "Status Code is incorrect")
}
bodyBytes, _ = ioutil.ReadAll(resp.Body)
bodyBytes, _ = io.ReadAll(resp.Body)
result = models.BucketLifecycleResponse{}
err = json.Unmarshal(bodyBytes, &result)
if err != nil {
@@ -3643,7 +3633,7 @@ func TestAccessRule(t *testing.T) {
assert.Equal(
200, resp.StatusCode, "Status Code is incorrect")
}
bodyBytes, _ := ioutil.ReadAll(resp.Body)
bodyBytes, _ := io.ReadAll(resp.Body)
result := models.ListAccessRulesResponse{}
err = json.Unmarshal(bodyBytes, &result)
if err != nil {
@@ -3681,7 +3671,7 @@ func TestAccessRule(t *testing.T) {
assert.Equal(
200, resp.StatusCode, "Status Code is incorrect")
}
bodyBytes, _ = ioutil.ReadAll(resp.Body)
bodyBytes, _ = io.ReadAll(resp.Body)
result = models.ListAccessRulesResponse{}
err = json.Unmarshal(bodyBytes, &result)
if err != nil {
@@ -3950,21 +3940,13 @@ func TestDeleteRemoteBucket(t *testing.T) {
// 3. Get ARN
resp, err = GetRemoteBucketARN(sourceBucket)
assert.Nil(err)
if err != nil {
log.Println(err)
return
}
bodyBytes, _ := ioutil.ReadAll(resp.Body)
assert.NotNil(resp)
assert.NotNil(resp.Body)
bodyBytes, _ := io.ReadAll(resp.Body)
remoteBucket := models.RemoteBucket{}
err = json.Unmarshal(bodyBytes, &remoteBucket)
if err != nil {
log.Println(err)
assert.Nil(err)
}
if resp != nil {
assert.Equal(
200, resp.StatusCode, inspectHTTPResponse(resp))
}
assert.Nil(err)
assert.Equal(200, resp.StatusCode, inspectHTTPResponse(resp))
// 4. Delete Remote Bucket
if remoteBucket.RemoteARN != nil {

View File

@@ -36,17 +36,17 @@ import (
// swagger:model bucketVersioningResponse
type BucketVersioningResponse struct {
// exclude folders
ExcludeFolders bool `json:"ExcludeFolders,omitempty"`
// excluded prefixes
ExcludedPrefixes []*BucketVersioningResponseExcludedPrefixesItems0 `json:"ExcludedPrefixes"`
// m f a delete
MFADelete string `json:"MFADelete,omitempty"`
// exclude folders
ExcludeFolders bool `json:"excludeFolders,omitempty"`
// excluded prefixes
ExcludedPrefixes []*BucketVersioningResponseExcludedPrefixesItems0 `json:"excludedPrefixes"`
// status
Status string `json:"Status,omitempty"`
Status string `json:"status,omitempty"`
}
// Validate validates this bucket versioning response
@@ -76,9 +76,9 @@ func (m *BucketVersioningResponse) validateExcludedPrefixes(formats strfmt.Regis
if m.ExcludedPrefixes[i] != nil {
if err := m.ExcludedPrefixes[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("ExcludedPrefixes" + "." + strconv.Itoa(i))
return ve.ValidateName("excludedPrefixes" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("ExcludedPrefixes" + "." + strconv.Itoa(i))
return ce.ValidateName("excludedPrefixes" + "." + strconv.Itoa(i))
}
return err
}
@@ -110,9 +110,9 @@ func (m *BucketVersioningResponse) contextValidateExcludedPrefixes(ctx context.C
if m.ExcludedPrefixes[i] != nil {
if err := m.ExcludedPrefixes[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("ExcludedPrefixes" + "." + strconv.Itoa(i))
return ve.ValidateName("excludedPrefixes" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("ExcludedPrefixes" + "." + strconv.Itoa(i))
return ce.ValidateName("excludedPrefixes" + "." + strconv.Itoa(i))
}
return err
}
@@ -147,7 +147,7 @@ func (m *BucketVersioningResponse) UnmarshalBinary(b []byte) error {
type BucketVersioningResponseExcludedPrefixesItems0 struct {
// prefix
Prefix string `json:"Prefix,omitempty"`
Prefix string `json:"prefix,omitempty"`
}
// Validate validates this bucket versioning response excluded prefixes items0

View File

@@ -38,8 +38,8 @@ import (
// swagger:model loginDetails
type LoginDetails struct {
// is direct p v
IsDirectPV bool `json:"isDirectPV,omitempty"`
// animated login
AnimatedLogin bool `json:"animatedLogin,omitempty"`
// is k8 s
IsK8S bool `json:"isK8S,omitempty"`

View File

@@ -55,6 +55,12 @@ const (
// NotificationEventTypeGet captures enum value "get"
NotificationEventTypeGet NotificationEventType = "get"
// NotificationEventTypeReplica captures enum value "replica"
NotificationEventTypeReplica NotificationEventType = "replica"
// NotificationEventTypeIlm captures enum value "ilm"
NotificationEventTypeIlm NotificationEventType = "ilm"
)
// for schema
@@ -62,7 +68,7 @@ var notificationEventTypeEnum []interface{}
func init() {
var res []NotificationEventType
if err := json.Unmarshal([]byte(`["put","delete","get"]`), &res); err != nil {
if err := json.Unmarshal([]byte(`["put","delete","get","replica","ilm"]`), &res); err != nil {
panic(err)
}
for _, v := range res {

View File

@@ -69,23 +69,23 @@ type DiscoveryDoc struct {
}
func (ac Config) Exchange(ctx context.Context, code string, opts ...xoauth2.AuthCodeOption) (*xoauth2.Token, error) {
return ac.Exchange(ctx, code, opts...)
return ac.Config.Exchange(ctx, code, opts...)
}
func (ac Config) AuthCodeURL(state string, opts ...xoauth2.AuthCodeOption) string {
return ac.AuthCodeURL(state, opts...)
return ac.Config.AuthCodeURL(state, opts...)
}
func (ac Config) PasswordCredentialsToken(ctx context.Context, username, password string) (*xoauth2.Token, error) {
return ac.PasswordCredentialsToken(ctx, username, password)
return ac.Config.PasswordCredentialsToken(ctx, username, password)
}
func (ac Config) Client(ctx context.Context, t *xoauth2.Token) *http.Client {
return ac.Client(ctx, t)
return ac.Config.Client(ctx, t)
}
func (ac Config) TokenSource(ctx context.Context, t *xoauth2.Token) xoauth2.TokenSource {
return ac.TokenSource(ctx, t)
return ac.Config.TokenSource(ctx, t)
}
// Provider is a wrapper of the oauth2 configuration and the oidc provider

View File

@@ -28,7 +28,6 @@ import (
"errors"
"fmt"
"io"
"io/ioutil"
"net/http"
"strings"
"time"
@@ -295,7 +294,7 @@ func decrypt(ciphertext, associatedData []byte) ([]byte, error) {
return nil, fmt.Errorf("invalid nonce size %d, expected %d", len(nonce), aead.NonceSize())
}
sealedBytes, err := ioutil.ReadAll(r)
sealedBytes, err := io.ReadAll(r)
if err != nil {
return nil, err
}

View File

@@ -24,7 +24,6 @@ import (
"encoding/pem"
"errors"
"fmt"
"io/ioutil"
"os"
"path/filepath"
"strings"
@@ -85,7 +84,7 @@ var (
func ParsePublicCertFile(certFile string) (x509Certs []*x509.Certificate, err error) {
// Read certificate file.
var data []byte
if data, err = ioutil.ReadFile(certFile); err != nil {
if data, err = os.ReadFile(certFile); err != nil {
return nil, err
}
@@ -188,11 +187,11 @@ const EnvCertPassword = "CONSOLE_CERT_PASSWD"
// from the provided paths. The private key may be encrypted and is
// decrypted using the ENV_VAR: MINIO_CERT_PASSWD.
func LoadX509KeyPair(certFile, keyFile string) (tls.Certificate, error) {
certPEMBlock, err := ioutil.ReadFile(certFile)
certPEMBlock, err := os.ReadFile(certFile)
if err != nil {
return tls.Certificate{}, err
}
keyPEMBlock, err := ioutil.ReadFile(keyFile)
keyPEMBlock, err := os.ReadFile(keyFile)
if err != nil {
return tls.Certificate{}, err
}
@@ -200,11 +199,13 @@ func LoadX509KeyPair(certFile, keyFile string) (tls.Certificate, error) {
if len(rest) > 0 {
return tls.Certificate{}, errors.New("the private key contains additional data")
}
// nolint:staticcheck // ignore SA1019
if x509.IsEncryptedPEMBlock(key) {
password := env.Get(EnvCertPassword, "")
if len(password) == 0 {
return tls.Certificate{}, errors.New("no password")
}
// nolint:staticcheck // ignore SA1019
decryptedKey, decErr := x509.DecryptPEMBlock(key, []byte(password))
if decErr != nil {
return tls.Certificate{}, decErr

View File

@@ -18,7 +18,6 @@ package http
import (
"io"
"io/ioutil"
"net/http"
)
@@ -69,6 +68,6 @@ func DrainBody(respBody io.ReadCloser) {
// the same connection for future uses.
// - http://stackoverflow.com/a/17961593/4465767
defer respBody.Close()
io.Copy(ioutil.Discard, respBody)
io.Copy(io.Discard, respBody)
}
}

View File

@@ -17,7 +17,7 @@
package config
import (
"github.com/minio/madmin-go/v2"
"github.com/minio/madmin-go/v3"
)
// Default keys

View File

@@ -173,8 +173,8 @@ func (h *Target) logEntry(entry interface{}) {
func (h *Target) startHTTPLogger() {
// Create a routine which sends json logs received
// from an internal channel.
h.wg.Add(1)
go func() {
h.wg.Add(1)
defer h.wg.Done()
for entry := range h.logCh {
h.logEntry(entry)

View File

@@ -28,7 +28,7 @@ import (
"github.com/minio/pkg/licverifier"
"github.com/minio/console/models"
"github.com/minio/madmin-go/v2"
"github.com/minio/madmin-go/v3"
mc "github.com/minio/mc/cmd"
"github.com/tidwall/gjson"
)

View File

@@ -23,13 +23,12 @@ import (
"encoding/json"
"fmt"
"io"
"io/ioutil"
"mime/multipart"
"net/http"
xhttp "github.com/minio/console/pkg/http"
"github.com/minio/madmin-go/v2"
"github.com/minio/madmin-go/v3"
mc "github.com/minio/mc/cmd"
"github.com/minio/pkg/env"
)
@@ -155,7 +154,7 @@ func subnetReqDo(client xhttp.ClientI, r *http.Request, headers map[string]strin
}
defer resp.Body.Close()
respBytes, e := ioutil.ReadAll(io.LimitReader(resp.Body, subnetRespBodyLimit))
respBytes, e := io.ReadAll(io.LimitReader(resp.Body, subnetRespBodyLimit))
if e != nil {
return "", e
}

View File

@@ -17,6 +17,7 @@
package utils
import (
"context"
"encoding/base64"
"github.com/google/uuid"
@@ -51,4 +52,15 @@ const (
ContextRequestHost = key("request-host")
ContextRequestRemoteAddr = key("request-remote-addr")
ContextAuditKey = key("request-audit-entry")
ContextClientIP = key("client-ip")
)
// ClientIPFromContext attempts to get the Client IP from a context, if it's not present, it returns
// 127.0.0.1
func ClientIPFromContext(ctx context.Context) string {
val := ctx.Value(ContextClientIP)
if val != nil {
return val.(string)
}
return "127.0.0.1"
}

View File

@@ -19,7 +19,7 @@ package utils
import (
"errors"
"fmt"
"io/ioutil"
"io"
"regexp"
"github.com/minio/console/pkg/http"
@@ -35,7 +35,7 @@ func GetLatestMinIOImage(client http.ClientI) (*string, error) {
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}

View File

@@ -5,12 +5,20 @@ build-static:
@if [ -f "${NVM_DIR}/nvm.sh" ]; then \. "${NVM_DIR}/nvm.sh" && nvm install && nvm use; fi && \
NODE_OPTIONS=--openssl-legacy-provider yarn build
build-static-istanbul-coverage:
@echo "Building frontend static assets to 'build'"
@if [ -f "${NVM_DIR}/nvm.sh" ]; then \. "${NVM_DIR}/nvm.sh" && nvm install && nvm use; fi && \
NODE_OPTIONS=--openssl-legacy-provider yarn buildistanbulcoverage
test-warnings:
./check-warnings.sh
test-prettier:
./check-prettier.sh
find-deadcode:
./check-deadcode.sh
prettify:
yarn prettier --write . --loglevel warn

View File

@@ -1,8 +1,10 @@
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
Requirements: `yarn` and [node](https://nodejs.org/en/download)
## Available Scripts
In the project directory, you can run:
In the `/portal-ui` directory, you can run:
### `yarn start`
@@ -12,6 +14,8 @@ Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
The page will reload if you make edits.<br />
You will also see any lint errors in the console.
> Note: If it's the first time running `yarn`, you might need to run `yarn install` before the `start` command.
### `yarn test`
Launches the test runner in the interactive watch mode.<br />

View File

@@ -1,123 +1,130 @@
{
"files": {
"main.css": "./static/css/main.57e739f5.css",
"main.js": "./static/js/main.078385cd.js",
"main.css": "./static/css/main.7f39beab.css",
"main.js": "./static/js/main.81adfdde.js",
"static/js/1260.a025e586.chunk.js": "./static/js/1260.a025e586.chunk.js",
"static/js/6914.8835970e.chunk.js": "./static/js/6914.8835970e.chunk.js",
"static/js/9121.4999947f.chunk.js": "./static/js/9121.4999947f.chunk.js",
"static/js/1829.4291766b.chunk.js": "./static/js/1829.4291766b.chunk.js",
"static/js/6272.11d7337f.chunk.js": "./static/js/6272.11d7337f.chunk.js",
"static/js/5088.00beec7c.chunk.js": "./static/js/5088.00beec7c.chunk.js",
"static/js/6122.e4ffcf6b.chunk.js": "./static/js/6122.e4ffcf6b.chunk.js",
"static/js/628.0ae012b8.chunk.js": "./static/js/628.0ae012b8.chunk.js",
"static/js/1380.f9c018ec.chunk.js": "./static/js/1380.f9c018ec.chunk.js",
"static/js/9635.4c87b735.chunk.js": "./static/js/9635.4c87b735.chunk.js",
"static/js/2338.53498b12.chunk.js": "./static/js/2338.53498b12.chunk.js",
"static/js/4335.edd9cf5e.chunk.js": "./static/js/4335.edd9cf5e.chunk.js",
"static/js/8521.5c1c6d31.chunk.js": "./static/js/8521.5c1c6d31.chunk.js",
"static/js/3543.03eba0f5.chunk.js": "./static/js/3543.03eba0f5.chunk.js",
"static/js/4061.1db80a47.chunk.js": "./static/js/4061.1db80a47.chunk.js",
"static/js/3067.9e44162a.chunk.js": "./static/js/3067.9e44162a.chunk.js",
"static/js/2637.eab4cad8.chunk.js": "./static/js/2637.eab4cad8.chunk.js",
"static/css/5370.3279acb8.chunk.css": "./static/css/5370.3279acb8.chunk.css",
"static/js/5370.9576aa21.chunk.js": "./static/js/5370.9576aa21.chunk.js",
"static/js/701.ab3ceba2.chunk.js": "./static/js/701.ab3ceba2.chunk.js",
"static/js/7821.5a87cfb0.chunk.js": "./static/js/7821.5a87cfb0.chunk.js",
"static/css/284.3279acb8.chunk.css": "./static/css/284.3279acb8.chunk.css",
"static/js/284.f9dbc9d8.chunk.js": "./static/js/284.f9dbc9d8.chunk.js",
"static/js/8388.fd34271e.chunk.js": "./static/js/8388.fd34271e.chunk.js",
"static/css/6593.3279acb8.chunk.css": "./static/css/6593.3279acb8.chunk.css",
"static/js/6593.f09d945f.chunk.js": "./static/js/6593.f09d945f.chunk.js",
"static/css/2433.3279acb8.chunk.css": "./static/css/2433.3279acb8.chunk.css",
"static/js/2433.cd24fabf.chunk.js": "./static/js/2433.cd24fabf.chunk.js",
"static/css/1195.3279acb8.chunk.css": "./static/css/1195.3279acb8.chunk.css",
"static/js/1195.8483f929.chunk.js": "./static/js/1195.8483f929.chunk.js",
"static/js/191.b50b4104.chunk.js": "./static/js/191.b50b4104.chunk.js",
"static/js/1329.98d80e22.chunk.js": "./static/js/1329.98d80e22.chunk.js",
"static/js/7614.527036f5.chunk.js": "./static/js/7614.527036f5.chunk.js",
"static/js/5351.41f5c7df.chunk.js": "./static/js/5351.41f5c7df.chunk.js",
"static/js/6491.83aa26f7.chunk.js": "./static/js/6491.83aa26f7.chunk.js",
"static/js/4902.f064f175.chunk.js": "./static/js/4902.f064f175.chunk.js",
"static/js/1432.6e142c2c.chunk.js": "./static/js/1432.6e142c2c.chunk.js",
"static/js/3171.6750e8c7.chunk.js": "./static/js/3171.6750e8c7.chunk.js",
"static/js/8360.bb4fd800.chunk.js": "./static/js/8360.bb4fd800.chunk.js",
"static/js/6577.4b3c8b41.chunk.js": "./static/js/6577.4b3c8b41.chunk.js",
"static/js/3875.5db2c08f.chunk.js": "./static/js/3875.5db2c08f.chunk.js",
"static/js/3115.da3a98f3.chunk.js": "./static/js/3115.da3a98f3.chunk.js",
"static/js/5522.72ab8875.chunk.js": "./static/js/5522.72ab8875.chunk.js",
"static/js/977.4c29a863.chunk.js": "./static/js/977.4c29a863.chunk.js",
"static/js/6686.ede27280.chunk.js": "./static/js/6686.ede27280.chunk.js",
"static/js/9059.155bb503.chunk.js": "./static/js/9059.155bb503.chunk.js",
"static/js/3819.5ec91bdd.chunk.js": "./static/js/3819.5ec91bdd.chunk.js",
"static/js/6247.af0fb000.chunk.js": "./static/js/6247.af0fb000.chunk.js",
"static/js/4414.ff5f95b9.chunk.js": "./static/js/4414.ff5f95b9.chunk.js",
"static/js/8833.4ba5da15.chunk.js": "./static/js/8833.4ba5da15.chunk.js",
"static/js/1516.147495bb.chunk.js": "./static/js/1516.147495bb.chunk.js",
"static/js/483.b039dcc0.chunk.js": "./static/js/483.b039dcc0.chunk.js",
"static/js/4114.9ce1a962.chunk.js": "./static/js/4114.9ce1a962.chunk.js",
"static/js/6895.143165e2.chunk.js": "./static/js/6895.143165e2.chunk.js",
"static/js/4874.41a5c449.chunk.js": "./static/js/4874.41a5c449.chunk.js",
"static/css/2050.3279acb8.chunk.css": "./static/css/2050.3279acb8.chunk.css",
"static/js/2050.b9acf1f9.chunk.js": "./static/js/2050.b9acf1f9.chunk.js",
"static/js/3956.9207ef85.chunk.js": "./static/js/3956.9207ef85.chunk.js",
"static/js/9221.983fd268.chunk.js": "./static/js/9221.983fd268.chunk.js",
"static/js/8896.ff4564b8.chunk.js": "./static/js/8896.ff4564b8.chunk.js",
"static/js/9134.9753fc42.chunk.js": "./static/js/9134.9753fc42.chunk.js",
"static/js/5223.650cfa3e.chunk.js": "./static/js/5223.650cfa3e.chunk.js",
"static/js/5661.7b56bafe.chunk.js": "./static/js/5661.7b56bafe.chunk.js",
"static/js/7134.6765e5b6.chunk.js": "./static/js/7134.6765e5b6.chunk.js",
"static/js/3034.d036146c.chunk.js": "./static/js/3034.d036146c.chunk.js",
"static/css/8925.3279acb8.chunk.css": "./static/css/8925.3279acb8.chunk.css",
"static/js/8925.e3d0dd77.chunk.js": "./static/js/8925.e3d0dd77.chunk.js",
"static/js/711.a5499cb1.chunk.js": "./static/js/711.a5499cb1.chunk.js",
"static/js/6901.79047196.chunk.js": "./static/js/6901.79047196.chunk.js",
"static/js/2185.4db0ed3d.chunk.js": "./static/js/2185.4db0ed3d.chunk.js",
"static/js/9968.e06e8995.chunk.js": "./static/js/9968.e06e8995.chunk.js",
"static/js/7494.3579143d.chunk.js": "./static/js/7494.3579143d.chunk.js",
"static/js/4738.9e3d5260.chunk.js": "./static/js/4738.9e3d5260.chunk.js",
"static/js/9918.7eee2adc.chunk.js": "./static/js/9918.7eee2adc.chunk.js",
"static/js/5702.fa73d842.chunk.js": "./static/js/5702.fa73d842.chunk.js",
"static/js/2512.f29a3687.chunk.js": "./static/js/2512.f29a3687.chunk.js",
"static/js/51.b4820ff4.chunk.js": "./static/js/51.b4820ff4.chunk.js",
"static/js/312.71a85ec1.chunk.js": "./static/js/312.71a85ec1.chunk.js",
"static/js/2032.d32831e1.chunk.js": "./static/js/2032.d32831e1.chunk.js",
"static/js/4619.000c3900.chunk.js": "./static/js/4619.000c3900.chunk.js",
"static/js/8990.d6246293.chunk.js": "./static/js/8990.d6246293.chunk.js",
"static/js/8455.de8a804d.chunk.js": "./static/js/8455.de8a804d.chunk.js",
"static/css/7233.3279acb8.chunk.css": "./static/css/7233.3279acb8.chunk.css",
"static/js/7233.38b9bfcf.chunk.js": "./static/js/7233.38b9bfcf.chunk.js",
"static/js/1604.8a9dcedd.chunk.js": "./static/js/1604.8a9dcedd.chunk.js",
"static/js/9952.dc18fe46.chunk.js": "./static/js/9952.dc18fe46.chunk.js",
"static/js/402.4bb1d687.chunk.js": "./static/js/402.4bb1d687.chunk.js",
"static/js/1705.27697aac.chunk.js": "./static/js/1705.27697aac.chunk.js",
"static/js/1581.e0b40512.chunk.js": "./static/js/1581.e0b40512.chunk.js",
"static/js/455.12104f9c.chunk.js": "./static/js/455.12104f9c.chunk.js",
"static/js/2921.f2282e66.chunk.js": "./static/js/2921.f2282e66.chunk.js",
"static/js/889.7aba45d8.chunk.js": "./static/js/889.7aba45d8.chunk.js",
"static/js/9088.e68839ae.chunk.js": "./static/js/9088.e68839ae.chunk.js",
"static/js/247.5fb5050b.chunk.js": "./static/js/247.5fb5050b.chunk.js",
"static/js/2763.a0e53c20.chunk.js": "./static/js/2763.a0e53c20.chunk.js",
"static/js/3691.cec964f8.chunk.js": "./static/js/3691.cec964f8.chunk.js",
"static/js/6481.c1e3d223.chunk.js": "./static/js/6481.c1e3d223.chunk.js",
"static/js/1520.6ee7f5c9.chunk.js": "./static/js/1520.6ee7f5c9.chunk.js",
"static/js/3682.3b92900e.chunk.js": "./static/js/3682.3b92900e.chunk.js",
"static/js/1918.b61ed655.chunk.js": "./static/js/1918.b61ed655.chunk.js",
"static/js/9683.1e217b9a.chunk.js": "./static/js/9683.1e217b9a.chunk.js",
"static/js/6914.9ab32297.chunk.js": "./static/js/6914.9ab32297.chunk.js",
"static/js/9121.813c1df9.chunk.js": "./static/js/9121.813c1df9.chunk.js",
"static/js/1829.11d4b426.chunk.js": "./static/js/1829.11d4b426.chunk.js",
"static/js/6272.59e477e4.chunk.js": "./static/js/6272.59e477e4.chunk.js",
"static/js/5088.bae6da67.chunk.js": "./static/js/5088.bae6da67.chunk.js",
"static/js/6122.8195a695.chunk.js": "./static/js/6122.8195a695.chunk.js",
"static/js/808.fb70b906.chunk.js": "./static/js/808.fb70b906.chunk.js",
"static/js/8060.060ad94e.chunk.js": "./static/js/8060.060ad94e.chunk.js",
"static/js/9635.fa7788f9.chunk.js": "./static/js/9635.fa7788f9.chunk.js",
"static/js/2338.f2a282fa.chunk.js": "./static/js/2338.f2a282fa.chunk.js",
"static/js/4335.16fc17e3.chunk.js": "./static/js/4335.16fc17e3.chunk.js",
"static/js/1892.e7ffbb89.chunk.js": "./static/js/1892.e7ffbb89.chunk.js",
"static/js/3543.b1838b1c.chunk.js": "./static/js/3543.b1838b1c.chunk.js",
"static/js/2074.307a0b66.chunk.js": "./static/js/2074.307a0b66.chunk.js",
"static/js/3067.fb364091.chunk.js": "./static/js/3067.fb364091.chunk.js",
"static/js/2637.be6faba9.chunk.js": "./static/js/2637.be6faba9.chunk.js",
"static/js/5962.812f802a.chunk.js": "./static/js/5962.812f802a.chunk.js",
"static/js/701.9eceec77.chunk.js": "./static/js/701.9eceec77.chunk.js",
"static/js/7821.12244c04.chunk.js": "./static/js/7821.12244c04.chunk.js",
"static/js/2545.ffac2fbb.chunk.js": "./static/js/2545.ffac2fbb.chunk.js",
"static/js/8388.bbb04702.chunk.js": "./static/js/8388.bbb04702.chunk.js",
"static/js/4065.506dd294.chunk.js": "./static/js/4065.506dd294.chunk.js",
"static/js/5935.edc7edfc.chunk.js": "./static/js/5935.edc7edfc.chunk.js",
"static/js/4563.121b75a9.chunk.js": "./static/js/4563.121b75a9.chunk.js",
"static/js/191.fd21cdcc.chunk.js": "./static/js/191.fd21cdcc.chunk.js",
"static/js/1329.ebb06e52.chunk.js": "./static/js/1329.ebb06e52.chunk.js",
"static/js/7614.18dd1f73.chunk.js": "./static/js/7614.18dd1f73.chunk.js",
"static/js/1690.5ad5531b.chunk.js": "./static/js/1690.5ad5531b.chunk.js",
"static/js/6491.4be25794.chunk.js": "./static/js/6491.4be25794.chunk.js",
"static/js/4902.ded1f1f5.chunk.js": "./static/js/4902.ded1f1f5.chunk.js",
"static/js/1432.963da344.chunk.js": "./static/js/1432.963da344.chunk.js",
"static/js/3171.5a1ef12c.chunk.js": "./static/js/3171.5a1ef12c.chunk.js",
"static/js/8360.965868c4.chunk.js": "./static/js/8360.965868c4.chunk.js",
"static/js/6577.a8d6a01c.chunk.js": "./static/js/6577.a8d6a01c.chunk.js",
"static/js/3875.b530d1e3.chunk.js": "./static/js/3875.b530d1e3.chunk.js",
"static/js/3115.365838bd.chunk.js": "./static/js/3115.365838bd.chunk.js",
"static/js/2603.9ebd9b9e.chunk.js": "./static/js/2603.9ebd9b9e.chunk.js",
"static/js/977.a9e8a839.chunk.js": "./static/js/977.a9e8a839.chunk.js",
"static/js/6686.0c756aaf.chunk.js": "./static/js/6686.0c756aaf.chunk.js",
"static/js/2486.1ecaac74.chunk.js": "./static/js/2486.1ecaac74.chunk.js",
"static/js/4882.6b280860.chunk.js": "./static/js/4882.6b280860.chunk.js",
"static/js/7586.17376d83.chunk.js": "./static/js/7586.17376d83.chunk.js",
"static/js/4414.930d89fc.chunk.js": "./static/js/4414.930d89fc.chunk.js",
"static/js/8833.91a69c65.chunk.js": "./static/js/8833.91a69c65.chunk.js",
"static/js/1516.216550a5.chunk.js": "./static/js/1516.216550a5.chunk.js",
"static/js/483.31c46d8b.chunk.js": "./static/js/483.31c46d8b.chunk.js",
"static/js/8045.312c59ab.chunk.js": "./static/js/8045.312c59ab.chunk.js",
"static/js/6895.10e498b4.chunk.js": "./static/js/6895.10e498b4.chunk.js",
"static/js/4874.1901748a.chunk.js": "./static/js/4874.1901748a.chunk.js",
"static/js/1191.6a8f1e3d.chunk.js": "./static/js/1191.6a8f1e3d.chunk.js",
"static/js/3956.27299d66.chunk.js": "./static/js/3956.27299d66.chunk.js",
"static/js/9221.ef026a1e.chunk.js": "./static/js/9221.ef026a1e.chunk.js",
"static/js/8896.ef691d94.chunk.js": "./static/js/8896.ef691d94.chunk.js",
"static/js/9134.a8ccdcdb.chunk.js": "./static/js/9134.a8ccdcdb.chunk.js",
"static/js/5223.d053b523.chunk.js": "./static/js/5223.d053b523.chunk.js",
"static/js/5661.e6b097aa.chunk.js": "./static/js/5661.e6b097aa.chunk.js",
"static/js/7134.a6c4a49e.chunk.js": "./static/js/7134.a6c4a49e.chunk.js",
"static/js/3034.ce980176.chunk.js": "./static/js/3034.ce980176.chunk.js",
"static/js/3138.314a2ab9.chunk.js": "./static/js/3138.314a2ab9.chunk.js",
"static/js/711.aec34a54.chunk.js": "./static/js/711.aec34a54.chunk.js",
"static/js/6901.67563dd6.chunk.js": "./static/js/6901.67563dd6.chunk.js",
"static/js/2185.8253dd66.chunk.js": "./static/js/2185.8253dd66.chunk.js",
"static/js/9968.392f895d.chunk.js": "./static/js/9968.392f895d.chunk.js",
"static/js/7494.72e35f55.chunk.js": "./static/js/7494.72e35f55.chunk.js",
"static/js/4267.a5055b3c.chunk.js": "./static/js/4267.a5055b3c.chunk.js",
"static/js/9918.87077127.chunk.js": "./static/js/9918.87077127.chunk.js",
"static/js/5702.71c4b7ad.chunk.js": "./static/js/5702.71c4b7ad.chunk.js",
"static/js/2512.770aacc4.chunk.js": "./static/js/2512.770aacc4.chunk.js",
"static/js/51.2c941d38.chunk.js": "./static/js/51.2c941d38.chunk.js",
"static/js/312.04cab7e8.chunk.js": "./static/js/312.04cab7e8.chunk.js",
"static/js/2032.54dedb37.chunk.js": "./static/js/2032.54dedb37.chunk.js",
"static/js/4619.56a4fe9f.chunk.js": "./static/js/4619.56a4fe9f.chunk.js",
"static/js/8990.a79c2757.chunk.js": "./static/js/8990.a79c2757.chunk.js",
"static/js/8455.c65159aa.chunk.js": "./static/js/8455.c65159aa.chunk.js",
"static/js/9816.9d5974a5.chunk.js": "./static/js/9816.9d5974a5.chunk.js",
"static/js/7584.620b5003.chunk.js": "./static/js/7584.620b5003.chunk.js",
"static/js/9952.df7cc0cb.chunk.js": "./static/js/9952.df7cc0cb.chunk.js",
"static/js/402.b4ce85d2.chunk.js": "./static/js/402.b4ce85d2.chunk.js",
"static/js/1705.0632aaa2.chunk.js": "./static/js/1705.0632aaa2.chunk.js",
"static/js/1581.ec29a0a8.chunk.js": "./static/js/1581.ec29a0a8.chunk.js",
"static/js/455.3198900d.chunk.js": "./static/js/455.3198900d.chunk.js",
"static/js/2661.f8e2dfa6.chunk.js": "./static/js/2661.f8e2dfa6.chunk.js",
"static/js/889.5dfe989a.chunk.js": "./static/js/889.5dfe989a.chunk.js",
"static/js/9088.f4b08dc0.chunk.js": "./static/js/9088.f4b08dc0.chunk.js",
"static/js/247.3ae1405a.chunk.js": "./static/js/247.3ae1405a.chunk.js",
"static/js/2763.94aac2f6.chunk.js": "./static/js/2763.94aac2f6.chunk.js",
"static/js/5473.e6936445.chunk.js": "./static/js/5473.e6936445.chunk.js",
"static/js/5994.42cc3b8c.chunk.js": "./static/js/5994.42cc3b8c.chunk.js",
"static/js/7391.c53687b2.chunk.js": "./static/js/7391.c53687b2.chunk.js",
"static/js/222.7f3906bd.chunk.js": "./static/js/222.7f3906bd.chunk.js",
"static/js/8800.e03c4db0.chunk.js": "./static/js/8800.e03c4db0.chunk.js",
"static/js/9518.2593e387.chunk.js": "./static/js/9518.2593e387.chunk.js",
"static/js/6993.cff4fa3c.chunk.js": "./static/js/6993.cff4fa3c.chunk.js",
"static/js/7847.d7a7fbd9.chunk.js": "./static/js/7847.d7a7fbd9.chunk.js",
"static/js/2909.e78ef785.chunk.js": "./static/js/2909.e78ef785.chunk.js",
"static/js/7981.8a6db645.chunk.js": "./static/js/7981.8a6db645.chunk.js",
"static/js/2260.71dd3e05.chunk.js": "./static/js/2260.71dd3e05.chunk.js",
"static/js/6459.b16c70ac.chunk.js": "./static/js/6459.b16c70ac.chunk.js",
"static/js/3801.e125737d.chunk.js": "./static/js/3801.e125737d.chunk.js",
"static/js/601.6e9a5467.chunk.js": "./static/js/601.6e9a5467.chunk.js",
"static/js/9414.12ffc9ac.chunk.js": "./static/js/9414.12ffc9ac.chunk.js",
"static/js/8265.a7f4cd6e.chunk.js": "./static/js/8265.a7f4cd6e.chunk.js",
"static/js/5284.fba0c13b.chunk.js": "./static/js/5284.fba0c13b.chunk.js",
"static/js/6315.3238dd2e.chunk.js": "./static/js/6315.3238dd2e.chunk.js",
"static/js/8766.5d6104c6.chunk.js": "./static/js/8766.5d6104c6.chunk.js",
"static/js/6503.67a16b55.chunk.js": "./static/js/6503.67a16b55.chunk.js",
"static/js/6169.e0c2c6d2.chunk.js": "./static/js/6169.e0c2c6d2.chunk.js",
"static/js/8968.3926ed4d.chunk.js": "./static/js/8968.3926ed4d.chunk.js",
"static/js/7986.faa0de32.chunk.js": "./static/js/7986.faa0de32.chunk.js",
"static/js/1803.10c741c8.chunk.js": "./static/js/1803.10c741c8.chunk.js",
"static/js/6662.34c547c9.chunk.js": "./static/js/6662.34c547c9.chunk.js",
"static/js/91.66e7e796.chunk.js": "./static/js/91.66e7e796.chunk.js",
"static/js/6037.7ed8da7f.chunk.js": "./static/js/6037.7ed8da7f.chunk.js",
"static/js/134.117c7fbe.chunk.js": "./static/js/134.117c7fbe.chunk.js",
"static/js/433.19458394.chunk.js": "./static/js/433.19458394.chunk.js",
"static/js/4738.4778b57f.chunk.js": "./static/js/4738.4778b57f.chunk.js",
"static/js/6748.23cfa162.chunk.js": "./static/js/6748.23cfa162.chunk.js",
"static/js/5004.19f9c421.chunk.js": "./static/js/5004.19f9c421.chunk.js",
"static/js/107.a58afd7d.chunk.js": "./static/js/107.a58afd7d.chunk.js",
"static/js/130.d84d2f5e.chunk.js": "./static/js/130.d84d2f5e.chunk.js",
"static/js/7299.cf8881c8.chunk.js": "./static/js/7299.cf8881c8.chunk.js",
"static/js/5032.d66e5016.chunk.js": "./static/js/5032.d66e5016.chunk.js",
"static/js/1450.4439b103.chunk.js": "./static/js/1450.4439b103.chunk.js",
"static/js/6975.e867afc1.chunk.js": "./static/js/6975.e867afc1.chunk.js",
"static/js/9444.da7eb5e5.chunk.js": "./static/js/9444.da7eb5e5.chunk.js",
"static/js/241.7f8c105e.chunk.js": "./static/js/241.7f8c105e.chunk.js",
"static/js/9054.2401fce4.chunk.js": "./static/js/9054.2401fce4.chunk.js",
"static/js/2791.35d976a5.chunk.js": "./static/js/2791.35d976a5.chunk.js",
"static/js/9581.11fc652e.chunk.js": "./static/js/9581.11fc652e.chunk.js",
"static/js/6662.f9187fb2.chunk.js": "./static/js/6662.f9187fb2.chunk.js",
"static/js/9817.97fe9a05.chunk.js": "./static/js/9817.97fe9a05.chunk.js",
"static/js/4670.9cad71d4.chunk.js": "./static/js/4670.9cad71d4.chunk.js",
"static/js/221.9704100d.chunk.js": "./static/js/221.9704100d.chunk.js",
"static/js/2983.3ffd4ad8.chunk.js": "./static/js/2983.3ffd4ad8.chunk.js",
"static/js/91.e520a97c.chunk.js": "./static/js/91.e520a97c.chunk.js",
"static/js/8308.24f46a88.chunk.js": "./static/js/8308.24f46a88.chunk.js",
"static/media/videoBG.mp4": "./static/media/videoBG.17363418b3c2246a0e27.mp4",
"static/media/loginAnimationPoster.png": "./static/media/loginAnimationPoster.9aa924bfe619e71d5d29.png",
"static/media/Inter-BoldItalic.woff": "./static/media/Inter-BoldItalic.b376885042f6c961a541.woff",
@@ -138,128 +145,136 @@
"static/media/Inter-Black.woff2": "./static/media/Inter-Black.15ca31c0a2a68f76d2d1.woff2",
"static/media/Inter-Thin.woff2": "./static/media/Inter-Thin.fff2a096db014f6239d4.woff2",
"static/media/Inter-Regular.woff2": "./static/media/Inter-Regular.c8ba52b05a9ef10f4758.woff2",
"static/media/placeholderimage.png": "./static/media/placeholderimage.077ea48bd1ef1f4a883f.png",
"index.html": "./index.html",
"main.57e739f5.css.map": "./static/css/main.57e739f5.css.map",
"main.078385cd.js.map": "./static/js/main.078385cd.js.map",
"main.7f39beab.css.map": "./static/css/main.7f39beab.css.map",
"main.81adfdde.js.map": "./static/js/main.81adfdde.js.map",
"1260.a025e586.chunk.js.map": "./static/js/1260.a025e586.chunk.js.map",
"6914.8835970e.chunk.js.map": "./static/js/6914.8835970e.chunk.js.map",
"9121.4999947f.chunk.js.map": "./static/js/9121.4999947f.chunk.js.map",
"1829.4291766b.chunk.js.map": "./static/js/1829.4291766b.chunk.js.map",
"6272.11d7337f.chunk.js.map": "./static/js/6272.11d7337f.chunk.js.map",
"5088.00beec7c.chunk.js.map": "./static/js/5088.00beec7c.chunk.js.map",
"6122.e4ffcf6b.chunk.js.map": "./static/js/6122.e4ffcf6b.chunk.js.map",
"628.0ae012b8.chunk.js.map": "./static/js/628.0ae012b8.chunk.js.map",
"1380.f9c018ec.chunk.js.map": "./static/js/1380.f9c018ec.chunk.js.map",
"9635.4c87b735.chunk.js.map": "./static/js/9635.4c87b735.chunk.js.map",
"2338.53498b12.chunk.js.map": "./static/js/2338.53498b12.chunk.js.map",
"4335.edd9cf5e.chunk.js.map": "./static/js/4335.edd9cf5e.chunk.js.map",
"8521.5c1c6d31.chunk.js.map": "./static/js/8521.5c1c6d31.chunk.js.map",
"3543.03eba0f5.chunk.js.map": "./static/js/3543.03eba0f5.chunk.js.map",
"4061.1db80a47.chunk.js.map": "./static/js/4061.1db80a47.chunk.js.map",
"3067.9e44162a.chunk.js.map": "./static/js/3067.9e44162a.chunk.js.map",
"2637.eab4cad8.chunk.js.map": "./static/js/2637.eab4cad8.chunk.js.map",
"5370.3279acb8.chunk.css.map": "./static/css/5370.3279acb8.chunk.css.map",
"5370.9576aa21.chunk.js.map": "./static/js/5370.9576aa21.chunk.js.map",
"701.ab3ceba2.chunk.js.map": "./static/js/701.ab3ceba2.chunk.js.map",
"7821.5a87cfb0.chunk.js.map": "./static/js/7821.5a87cfb0.chunk.js.map",
"284.3279acb8.chunk.css.map": "./static/css/284.3279acb8.chunk.css.map",
"284.f9dbc9d8.chunk.js.map": "./static/js/284.f9dbc9d8.chunk.js.map",
"8388.fd34271e.chunk.js.map": "./static/js/8388.fd34271e.chunk.js.map",
"6593.3279acb8.chunk.css.map": "./static/css/6593.3279acb8.chunk.css.map",
"6593.f09d945f.chunk.js.map": "./static/js/6593.f09d945f.chunk.js.map",
"2433.3279acb8.chunk.css.map": "./static/css/2433.3279acb8.chunk.css.map",
"2433.cd24fabf.chunk.js.map": "./static/js/2433.cd24fabf.chunk.js.map",
"1195.3279acb8.chunk.css.map": "./static/css/1195.3279acb8.chunk.css.map",
"1195.8483f929.chunk.js.map": "./static/js/1195.8483f929.chunk.js.map",
"191.b50b4104.chunk.js.map": "./static/js/191.b50b4104.chunk.js.map",
"1329.98d80e22.chunk.js.map": "./static/js/1329.98d80e22.chunk.js.map",
"7614.527036f5.chunk.js.map": "./static/js/7614.527036f5.chunk.js.map",
"5351.41f5c7df.chunk.js.map": "./static/js/5351.41f5c7df.chunk.js.map",
"6491.83aa26f7.chunk.js.map": "./static/js/6491.83aa26f7.chunk.js.map",
"4902.f064f175.chunk.js.map": "./static/js/4902.f064f175.chunk.js.map",
"1432.6e142c2c.chunk.js.map": "./static/js/1432.6e142c2c.chunk.js.map",
"3171.6750e8c7.chunk.js.map": "./static/js/3171.6750e8c7.chunk.js.map",
"8360.bb4fd800.chunk.js.map": "./static/js/8360.bb4fd800.chunk.js.map",
"6577.4b3c8b41.chunk.js.map": "./static/js/6577.4b3c8b41.chunk.js.map",
"3875.5db2c08f.chunk.js.map": "./static/js/3875.5db2c08f.chunk.js.map",
"3115.da3a98f3.chunk.js.map": "./static/js/3115.da3a98f3.chunk.js.map",
"5522.72ab8875.chunk.js.map": "./static/js/5522.72ab8875.chunk.js.map",
"977.4c29a863.chunk.js.map": "./static/js/977.4c29a863.chunk.js.map",
"6686.ede27280.chunk.js.map": "./static/js/6686.ede27280.chunk.js.map",
"9059.155bb503.chunk.js.map": "./static/js/9059.155bb503.chunk.js.map",
"3819.5ec91bdd.chunk.js.map": "./static/js/3819.5ec91bdd.chunk.js.map",
"6247.af0fb000.chunk.js.map": "./static/js/6247.af0fb000.chunk.js.map",
"4414.ff5f95b9.chunk.js.map": "./static/js/4414.ff5f95b9.chunk.js.map",
"8833.4ba5da15.chunk.js.map": "./static/js/8833.4ba5da15.chunk.js.map",
"1516.147495bb.chunk.js.map": "./static/js/1516.147495bb.chunk.js.map",
"483.b039dcc0.chunk.js.map": "./static/js/483.b039dcc0.chunk.js.map",
"4114.9ce1a962.chunk.js.map": "./static/js/4114.9ce1a962.chunk.js.map",
"6895.143165e2.chunk.js.map": "./static/js/6895.143165e2.chunk.js.map",
"4874.41a5c449.chunk.js.map": "./static/js/4874.41a5c449.chunk.js.map",
"2050.3279acb8.chunk.css.map": "./static/css/2050.3279acb8.chunk.css.map",
"2050.b9acf1f9.chunk.js.map": "./static/js/2050.b9acf1f9.chunk.js.map",
"3956.9207ef85.chunk.js.map": "./static/js/3956.9207ef85.chunk.js.map",
"9221.983fd268.chunk.js.map": "./static/js/9221.983fd268.chunk.js.map",
"8896.ff4564b8.chunk.js.map": "./static/js/8896.ff4564b8.chunk.js.map",
"9134.9753fc42.chunk.js.map": "./static/js/9134.9753fc42.chunk.js.map",
"5223.650cfa3e.chunk.js.map": "./static/js/5223.650cfa3e.chunk.js.map",
"5661.7b56bafe.chunk.js.map": "./static/js/5661.7b56bafe.chunk.js.map",
"7134.6765e5b6.chunk.js.map": "./static/js/7134.6765e5b6.chunk.js.map",
"3034.d036146c.chunk.js.map": "./static/js/3034.d036146c.chunk.js.map",
"8925.3279acb8.chunk.css.map": "./static/css/8925.3279acb8.chunk.css.map",
"8925.e3d0dd77.chunk.js.map": "./static/js/8925.e3d0dd77.chunk.js.map",
"711.a5499cb1.chunk.js.map": "./static/js/711.a5499cb1.chunk.js.map",
"6901.79047196.chunk.js.map": "./static/js/6901.79047196.chunk.js.map",
"2185.4db0ed3d.chunk.js.map": "./static/js/2185.4db0ed3d.chunk.js.map",
"9968.e06e8995.chunk.js.map": "./static/js/9968.e06e8995.chunk.js.map",
"7494.3579143d.chunk.js.map": "./static/js/7494.3579143d.chunk.js.map",
"4738.9e3d5260.chunk.js.map": "./static/js/4738.9e3d5260.chunk.js.map",
"9918.7eee2adc.chunk.js.map": "./static/js/9918.7eee2adc.chunk.js.map",
"5702.fa73d842.chunk.js.map": "./static/js/5702.fa73d842.chunk.js.map",
"2512.f29a3687.chunk.js.map": "./static/js/2512.f29a3687.chunk.js.map",
"51.b4820ff4.chunk.js.map": "./static/js/51.b4820ff4.chunk.js.map",
"312.71a85ec1.chunk.js.map": "./static/js/312.71a85ec1.chunk.js.map",
"2032.d32831e1.chunk.js.map": "./static/js/2032.d32831e1.chunk.js.map",
"4619.000c3900.chunk.js.map": "./static/js/4619.000c3900.chunk.js.map",
"8990.d6246293.chunk.js.map": "./static/js/8990.d6246293.chunk.js.map",
"8455.de8a804d.chunk.js.map": "./static/js/8455.de8a804d.chunk.js.map",
"7233.3279acb8.chunk.css.map": "./static/css/7233.3279acb8.chunk.css.map",
"7233.38b9bfcf.chunk.js.map": "./static/js/7233.38b9bfcf.chunk.js.map",
"1604.8a9dcedd.chunk.js.map": "./static/js/1604.8a9dcedd.chunk.js.map",
"9952.dc18fe46.chunk.js.map": "./static/js/9952.dc18fe46.chunk.js.map",
"402.4bb1d687.chunk.js.map": "./static/js/402.4bb1d687.chunk.js.map",
"1705.27697aac.chunk.js.map": "./static/js/1705.27697aac.chunk.js.map",
"1581.e0b40512.chunk.js.map": "./static/js/1581.e0b40512.chunk.js.map",
"455.12104f9c.chunk.js.map": "./static/js/455.12104f9c.chunk.js.map",
"2921.f2282e66.chunk.js.map": "./static/js/2921.f2282e66.chunk.js.map",
"889.7aba45d8.chunk.js.map": "./static/js/889.7aba45d8.chunk.js.map",
"9088.e68839ae.chunk.js.map": "./static/js/9088.e68839ae.chunk.js.map",
"247.5fb5050b.chunk.js.map": "./static/js/247.5fb5050b.chunk.js.map",
"2763.a0e53c20.chunk.js.map": "./static/js/2763.a0e53c20.chunk.js.map",
"3691.cec964f8.chunk.js.map": "./static/js/3691.cec964f8.chunk.js.map",
"6481.c1e3d223.chunk.js.map": "./static/js/6481.c1e3d223.chunk.js.map",
"1520.6ee7f5c9.chunk.js.map": "./static/js/1520.6ee7f5c9.chunk.js.map",
"3682.3b92900e.chunk.js.map": "./static/js/3682.3b92900e.chunk.js.map",
"1918.b61ed655.chunk.js.map": "./static/js/1918.b61ed655.chunk.js.map",
"9683.1e217b9a.chunk.js.map": "./static/js/9683.1e217b9a.chunk.js.map",
"6914.9ab32297.chunk.js.map": "./static/js/6914.9ab32297.chunk.js.map",
"9121.813c1df9.chunk.js.map": "./static/js/9121.813c1df9.chunk.js.map",
"1829.11d4b426.chunk.js.map": "./static/js/1829.11d4b426.chunk.js.map",
"6272.59e477e4.chunk.js.map": "./static/js/6272.59e477e4.chunk.js.map",
"5088.bae6da67.chunk.js.map": "./static/js/5088.bae6da67.chunk.js.map",
"6122.8195a695.chunk.js.map": "./static/js/6122.8195a695.chunk.js.map",
"808.fb70b906.chunk.js.map": "./static/js/808.fb70b906.chunk.js.map",
"8060.060ad94e.chunk.js.map": "./static/js/8060.060ad94e.chunk.js.map",
"9635.fa7788f9.chunk.js.map": "./static/js/9635.fa7788f9.chunk.js.map",
"2338.f2a282fa.chunk.js.map": "./static/js/2338.f2a282fa.chunk.js.map",
"4335.16fc17e3.chunk.js.map": "./static/js/4335.16fc17e3.chunk.js.map",
"1892.e7ffbb89.chunk.js.map": "./static/js/1892.e7ffbb89.chunk.js.map",
"3543.b1838b1c.chunk.js.map": "./static/js/3543.b1838b1c.chunk.js.map",
"2074.307a0b66.chunk.js.map": "./static/js/2074.307a0b66.chunk.js.map",
"3067.fb364091.chunk.js.map": "./static/js/3067.fb364091.chunk.js.map",
"2637.be6faba9.chunk.js.map": "./static/js/2637.be6faba9.chunk.js.map",
"5962.812f802a.chunk.js.map": "./static/js/5962.812f802a.chunk.js.map",
"701.9eceec77.chunk.js.map": "./static/js/701.9eceec77.chunk.js.map",
"7821.12244c04.chunk.js.map": "./static/js/7821.12244c04.chunk.js.map",
"2545.ffac2fbb.chunk.js.map": "./static/js/2545.ffac2fbb.chunk.js.map",
"8388.bbb04702.chunk.js.map": "./static/js/8388.bbb04702.chunk.js.map",
"4065.506dd294.chunk.js.map": "./static/js/4065.506dd294.chunk.js.map",
"5935.edc7edfc.chunk.js.map": "./static/js/5935.edc7edfc.chunk.js.map",
"4563.121b75a9.chunk.js.map": "./static/js/4563.121b75a9.chunk.js.map",
"191.fd21cdcc.chunk.js.map": "./static/js/191.fd21cdcc.chunk.js.map",
"1329.ebb06e52.chunk.js.map": "./static/js/1329.ebb06e52.chunk.js.map",
"7614.18dd1f73.chunk.js.map": "./static/js/7614.18dd1f73.chunk.js.map",
"1690.5ad5531b.chunk.js.map": "./static/js/1690.5ad5531b.chunk.js.map",
"6491.4be25794.chunk.js.map": "./static/js/6491.4be25794.chunk.js.map",
"4902.ded1f1f5.chunk.js.map": "./static/js/4902.ded1f1f5.chunk.js.map",
"1432.963da344.chunk.js.map": "./static/js/1432.963da344.chunk.js.map",
"3171.5a1ef12c.chunk.js.map": "./static/js/3171.5a1ef12c.chunk.js.map",
"8360.965868c4.chunk.js.map": "./static/js/8360.965868c4.chunk.js.map",
"6577.a8d6a01c.chunk.js.map": "./static/js/6577.a8d6a01c.chunk.js.map",
"3875.b530d1e3.chunk.js.map": "./static/js/3875.b530d1e3.chunk.js.map",
"3115.365838bd.chunk.js.map": "./static/js/3115.365838bd.chunk.js.map",
"2603.9ebd9b9e.chunk.js.map": "./static/js/2603.9ebd9b9e.chunk.js.map",
"977.a9e8a839.chunk.js.map": "./static/js/977.a9e8a839.chunk.js.map",
"6686.0c756aaf.chunk.js.map": "./static/js/6686.0c756aaf.chunk.js.map",
"2486.1ecaac74.chunk.js.map": "./static/js/2486.1ecaac74.chunk.js.map",
"4882.6b280860.chunk.js.map": "./static/js/4882.6b280860.chunk.js.map",
"7586.17376d83.chunk.js.map": "./static/js/7586.17376d83.chunk.js.map",
"4414.930d89fc.chunk.js.map": "./static/js/4414.930d89fc.chunk.js.map",
"8833.91a69c65.chunk.js.map": "./static/js/8833.91a69c65.chunk.js.map",
"1516.216550a5.chunk.js.map": "./static/js/1516.216550a5.chunk.js.map",
"483.31c46d8b.chunk.js.map": "./static/js/483.31c46d8b.chunk.js.map",
"8045.312c59ab.chunk.js.map": "./static/js/8045.312c59ab.chunk.js.map",
"6895.10e498b4.chunk.js.map": "./static/js/6895.10e498b4.chunk.js.map",
"4874.1901748a.chunk.js.map": "./static/js/4874.1901748a.chunk.js.map",
"1191.6a8f1e3d.chunk.js.map": "./static/js/1191.6a8f1e3d.chunk.js.map",
"3956.27299d66.chunk.js.map": "./static/js/3956.27299d66.chunk.js.map",
"9221.ef026a1e.chunk.js.map": "./static/js/9221.ef026a1e.chunk.js.map",
"8896.ef691d94.chunk.js.map": "./static/js/8896.ef691d94.chunk.js.map",
"9134.a8ccdcdb.chunk.js.map": "./static/js/9134.a8ccdcdb.chunk.js.map",
"5223.d053b523.chunk.js.map": "./static/js/5223.d053b523.chunk.js.map",
"5661.e6b097aa.chunk.js.map": "./static/js/5661.e6b097aa.chunk.js.map",
"7134.a6c4a49e.chunk.js.map": "./static/js/7134.a6c4a49e.chunk.js.map",
"3034.ce980176.chunk.js.map": "./static/js/3034.ce980176.chunk.js.map",
"3138.314a2ab9.chunk.js.map": "./static/js/3138.314a2ab9.chunk.js.map",
"711.aec34a54.chunk.js.map": "./static/js/711.aec34a54.chunk.js.map",
"6901.67563dd6.chunk.js.map": "./static/js/6901.67563dd6.chunk.js.map",
"2185.8253dd66.chunk.js.map": "./static/js/2185.8253dd66.chunk.js.map",
"9968.392f895d.chunk.js.map": "./static/js/9968.392f895d.chunk.js.map",
"7494.72e35f55.chunk.js.map": "./static/js/7494.72e35f55.chunk.js.map",
"4267.a5055b3c.chunk.js.map": "./static/js/4267.a5055b3c.chunk.js.map",
"9918.87077127.chunk.js.map": "./static/js/9918.87077127.chunk.js.map",
"5702.71c4b7ad.chunk.js.map": "./static/js/5702.71c4b7ad.chunk.js.map",
"2512.770aacc4.chunk.js.map": "./static/js/2512.770aacc4.chunk.js.map",
"51.2c941d38.chunk.js.map": "./static/js/51.2c941d38.chunk.js.map",
"312.04cab7e8.chunk.js.map": "./static/js/312.04cab7e8.chunk.js.map",
"2032.54dedb37.chunk.js.map": "./static/js/2032.54dedb37.chunk.js.map",
"4619.56a4fe9f.chunk.js.map": "./static/js/4619.56a4fe9f.chunk.js.map",
"8990.a79c2757.chunk.js.map": "./static/js/8990.a79c2757.chunk.js.map",
"8455.c65159aa.chunk.js.map": "./static/js/8455.c65159aa.chunk.js.map",
"9816.9d5974a5.chunk.js.map": "./static/js/9816.9d5974a5.chunk.js.map",
"7584.620b5003.chunk.js.map": "./static/js/7584.620b5003.chunk.js.map",
"9952.df7cc0cb.chunk.js.map": "./static/js/9952.df7cc0cb.chunk.js.map",
"402.b4ce85d2.chunk.js.map": "./static/js/402.b4ce85d2.chunk.js.map",
"1705.0632aaa2.chunk.js.map": "./static/js/1705.0632aaa2.chunk.js.map",
"1581.ec29a0a8.chunk.js.map": "./static/js/1581.ec29a0a8.chunk.js.map",
"455.3198900d.chunk.js.map": "./static/js/455.3198900d.chunk.js.map",
"2661.f8e2dfa6.chunk.js.map": "./static/js/2661.f8e2dfa6.chunk.js.map",
"889.5dfe989a.chunk.js.map": "./static/js/889.5dfe989a.chunk.js.map",
"9088.f4b08dc0.chunk.js.map": "./static/js/9088.f4b08dc0.chunk.js.map",
"247.3ae1405a.chunk.js.map": "./static/js/247.3ae1405a.chunk.js.map",
"2763.94aac2f6.chunk.js.map": "./static/js/2763.94aac2f6.chunk.js.map",
"5473.e6936445.chunk.js.map": "./static/js/5473.e6936445.chunk.js.map",
"5994.42cc3b8c.chunk.js.map": "./static/js/5994.42cc3b8c.chunk.js.map",
"7391.c53687b2.chunk.js.map": "./static/js/7391.c53687b2.chunk.js.map",
"222.7f3906bd.chunk.js.map": "./static/js/222.7f3906bd.chunk.js.map",
"8800.e03c4db0.chunk.js.map": "./static/js/8800.e03c4db0.chunk.js.map",
"9518.2593e387.chunk.js.map": "./static/js/9518.2593e387.chunk.js.map",
"6993.cff4fa3c.chunk.js.map": "./static/js/6993.cff4fa3c.chunk.js.map",
"7847.d7a7fbd9.chunk.js.map": "./static/js/7847.d7a7fbd9.chunk.js.map",
"2909.e78ef785.chunk.js.map": "./static/js/2909.e78ef785.chunk.js.map",
"7981.8a6db645.chunk.js.map": "./static/js/7981.8a6db645.chunk.js.map",
"2260.71dd3e05.chunk.js.map": "./static/js/2260.71dd3e05.chunk.js.map",
"6459.b16c70ac.chunk.js.map": "./static/js/6459.b16c70ac.chunk.js.map",
"3801.e125737d.chunk.js.map": "./static/js/3801.e125737d.chunk.js.map",
"601.6e9a5467.chunk.js.map": "./static/js/601.6e9a5467.chunk.js.map",
"9414.12ffc9ac.chunk.js.map": "./static/js/9414.12ffc9ac.chunk.js.map",
"8265.a7f4cd6e.chunk.js.map": "./static/js/8265.a7f4cd6e.chunk.js.map",
"5284.fba0c13b.chunk.js.map": "./static/js/5284.fba0c13b.chunk.js.map",
"6315.3238dd2e.chunk.js.map": "./static/js/6315.3238dd2e.chunk.js.map",
"8766.5d6104c6.chunk.js.map": "./static/js/8766.5d6104c6.chunk.js.map",
"6503.67a16b55.chunk.js.map": "./static/js/6503.67a16b55.chunk.js.map",
"6169.e0c2c6d2.chunk.js.map": "./static/js/6169.e0c2c6d2.chunk.js.map",
"8968.3926ed4d.chunk.js.map": "./static/js/8968.3926ed4d.chunk.js.map",
"7986.faa0de32.chunk.js.map": "./static/js/7986.faa0de32.chunk.js.map",
"1803.10c741c8.chunk.js.map": "./static/js/1803.10c741c8.chunk.js.map",
"6662.34c547c9.chunk.js.map": "./static/js/6662.34c547c9.chunk.js.map",
"91.66e7e796.chunk.js.map": "./static/js/91.66e7e796.chunk.js.map",
"6037.7ed8da7f.chunk.js.map": "./static/js/6037.7ed8da7f.chunk.js.map"
"134.117c7fbe.chunk.js.map": "./static/js/134.117c7fbe.chunk.js.map",
"433.19458394.chunk.js.map": "./static/js/433.19458394.chunk.js.map",
"4738.4778b57f.chunk.js.map": "./static/js/4738.4778b57f.chunk.js.map",
"6748.23cfa162.chunk.js.map": "./static/js/6748.23cfa162.chunk.js.map",
"5004.19f9c421.chunk.js.map": "./static/js/5004.19f9c421.chunk.js.map",
"107.a58afd7d.chunk.js.map": "./static/js/107.a58afd7d.chunk.js.map",
"130.d84d2f5e.chunk.js.map": "./static/js/130.d84d2f5e.chunk.js.map",
"7299.cf8881c8.chunk.js.map": "./static/js/7299.cf8881c8.chunk.js.map",
"5032.d66e5016.chunk.js.map": "./static/js/5032.d66e5016.chunk.js.map",
"1450.4439b103.chunk.js.map": "./static/js/1450.4439b103.chunk.js.map",
"6975.e867afc1.chunk.js.map": "./static/js/6975.e867afc1.chunk.js.map",
"9444.da7eb5e5.chunk.js.map": "./static/js/9444.da7eb5e5.chunk.js.map",
"241.7f8c105e.chunk.js.map": "./static/js/241.7f8c105e.chunk.js.map",
"9054.2401fce4.chunk.js.map": "./static/js/9054.2401fce4.chunk.js.map",
"2791.35d976a5.chunk.js.map": "./static/js/2791.35d976a5.chunk.js.map",
"9581.11fc652e.chunk.js.map": "./static/js/9581.11fc652e.chunk.js.map",
"6662.f9187fb2.chunk.js.map": "./static/js/6662.f9187fb2.chunk.js.map",
"9817.97fe9a05.chunk.js.map": "./static/js/9817.97fe9a05.chunk.js.map",
"4670.9cad71d4.chunk.js.map": "./static/js/4670.9cad71d4.chunk.js.map",
"221.9704100d.chunk.js.map": "./static/js/221.9704100d.chunk.js.map",
"2983.3ffd4ad8.chunk.js.map": "./static/js/2983.3ffd4ad8.chunk.js.map",
"91.e520a97c.chunk.js.map": "./static/js/91.e520a97c.chunk.js.map",
"8308.24f46a88.chunk.js.map": "./static/js/8308.24f46a88.chunk.js.map"
},
"entrypoints": [
"static/css/main.57e739f5.css",
"static/js/main.078385cd.js"
"static/css/main.7f39beab.css",
"static/js/main.81adfdde.js"
]
}

View File

@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="/"/><meta content="width=device-width,initial-scale=1" name="viewport"/><meta content="#081C42" media="(prefers-color-scheme: light)" name="theme-color"/><meta content="#081C42" media="(prefers-color-scheme: dark)" name="theme-color"/><meta content="MinIO Console" name="description"/><meta name="minio-license" content="apgl"/><link href="./styles/root-styles.css" rel="stylesheet"/><link href="./apple-icon-180x180.png" rel="apple-touch-icon" sizes="180x180"/><link href="./favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link href="./favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="./favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><link href="./manifest.json" rel="manifest"/><link color="#3a4e54" href="./safari-pinned-tab.svg" rel="mask-icon"/><title>MinIO Console</title><script defer="defer" src="./static/js/main.078385cd.js"></script><link href="./static/css/main.57e739f5.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"><div id="preload"><img src="./images/background.svg"/> <img src="./images/background-wave-orig2.svg"/></div><div id="loader-block"><img src="./Loader.svg"/></div></div></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="/"/><meta content="width=device-width,initial-scale=1" name="viewport"/><meta content="#081C42" media="(prefers-color-scheme: light)" name="theme-color"/><meta content="#081C42" media="(prefers-color-scheme: dark)" name="theme-color"/><meta content="MinIO Console" name="description"/><meta name="minio-license" content="apgl"/><link href="./styles/root-styles.css" rel="stylesheet"/><link href="./apple-icon-180x180.png" rel="apple-touch-icon" sizes="180x180"/><link href="./favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link href="./favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="./favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><link href="./manifest.json" rel="manifest"/><link color="#3a4e54" href="./safari-pinned-tab.svg" rel="mask-icon"/><title>MinIO Console</title><script defer="defer" src="./static/js/main.81adfdde.js"></script><link href="./static/css/main.7f39beab.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"><div id="preload"><img src="./images/background.svg"/> <img src="./images/background-wave-orig2.svg"/></div><div id="loader-block"><img src="./Loader.svg"/></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
.ReactVirtualized__Table__headerRow{font-weight:700;text-transform:uppercase}.ReactVirtualized__Table__headerRow,.ReactVirtualized__Table__row{align-items:center;display:flex;flex-direction:row}.ReactVirtualized__Table__headerTruncatedText{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ReactVirtualized__Table__headerColumn,.ReactVirtualized__Table__rowColumn{margin-right:10px;min-width:0}.ReactVirtualized__Table__rowColumn{text-overflow:ellipsis;white-space:nowrap}.ReactVirtualized__Table__headerColumn:first-of-type,.ReactVirtualized__Table__rowColumn:first-of-type{margin-left:10px}.ReactVirtualized__Table__sortableHeaderColumn{cursor:pointer}.ReactVirtualized__Table__sortableHeaderIconContainer{align-items:center;display:flex}.ReactVirtualized__Table__sortableHeaderIcon{fill:currentColor;flex:0 0 24px;height:1em;width:1em}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform}.react-grid-item.resizing{will-change:width,height;z-index:1}.react-grid-item.react-draggable-dragging{transition:none;will-change:transform;z-index:3}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;-webkit-user-select:none;-o-user-select:none;user-select:none;z-index:2}.react-grid-item>.react-resizable-handle{height:20px;position:absolute;width:20px}.react-grid-item>.react-resizable-handle:after{border-bottom:2px solid rgba(0,0,0,.4);border-right:2px solid rgba(0,0,0,.4);bottom:3px;content:"";height:5px;position:absolute;right:3px;width:5px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e,.react-grid-item>.react-resizable-handle.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZaIiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+);background-origin:content-box;background-position:100% 100%;background-repeat:no-repeat;box-sizing:border-box;height:20px;padding:0 3px 3px 0;position:absolute;width:20px}.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.removeArrows input::-webkit-inner-spin-button,.removeArrows input::-webkit-outer-spin-button,input.removeArrows::-webkit-inner-spin-button,input.removeArrows::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.removeArrows input[type=number],input.removeArrows[type=number]{-moz-appearance:textfield}
/*# sourceMappingURL=main.7f39beab.css.map*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"static/js/1260.a025e586.chunk.js","mappings":"yNAuDA,UA7BmB,WACjB,IAAMA,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,MAwBjB,OAvBAC,EAAAA,EAAAA,YAAU,YACO,WACb,IAAMC,EAAgB,YACpBC,EAAAA,EAAAA,MACAN,GAASO,EAAAA,EAAAA,KAAW,IACpBC,aAAaC,QAAQ,eAAgB,IACrCD,aAAaC,QAAQ,gBAAiB,IACtCT,GAASU,EAAAA,EAAAA,OACTR,EAAS,SACX,EACMS,EAAQH,aAAaI,QAAQ,cACnCC,EAAAA,EAAAA,OACU,OAAO,iBAAmB,CAAEF,MAAAA,IACnCG,MAAK,WACJT,GACF,IACCU,OAAM,SAACC,GACNC,QAAQC,IAAIF,GACZX,GACF,GACJ,CACAc,EACF,GAAG,CAACnB,EAAUE,KACPkB,EAAAA,EAAAA,KAACC,EAAAA,EAAgB,GAC1B,C","sources":["screens/LogoutPage/LogoutPage.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAppDispatch } from \"../../store\";\nimport { ErrorResponseHandler } from \"../../common/types\";\nimport { clearSession } from \"../../common/utils\";\nimport { userLogged } from \"../../systemSlice\";\nimport { resetSession } from \"../Console/consoleSlice\";\nimport api from \"../../common/api\";\nimport LoadingComponent from \"../../common/LoadingComponent\";\n\nconst LogoutPage = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n useEffect(() => {\n const logout = () => {\n const deleteSession = () => {\n clearSession();\n dispatch(userLogged(false));\n localStorage.setItem(\"userLoggedIn\", \"\");\n localStorage.setItem(\"redirect-path\", \"\");\n dispatch(resetSession());\n navigate(`/login`);\n };\n const state = localStorage.getItem(\"auth-state\");\n api\n .invoke(\"POST\", `/api/v1/logout`, { state })\n .then(() => {\n deleteSession();\n })\n .catch((err: ErrorResponseHandler) => {\n console.log(err);\n deleteSession();\n });\n };\n logout();\n }, [dispatch, navigate]);\n return <LoadingComponent />;\n};\n\nexport default LogoutPage;\n"],"names":["dispatch","useAppDispatch","navigate","useNavigate","useEffect","deleteSession","clearSession","userLogged","localStorage","setItem","resetSession","state","getItem","api","then","catch","err","console","log","logout","_jsx","LoadingComponent"],"sourceRoot":""}
{"version":3,"file":"static/js/1260.a025e586.chunk.js","mappings":"yNAuDA,UA7BmB,WACjB,IAAMA,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,MAwBjB,OAvBAC,EAAAA,EAAAA,YAAU,YACO,WACb,IAAMC,EAAgB,YACpBC,EAAAA,EAAAA,MACAN,GAASO,EAAAA,EAAAA,KAAW,IACpBC,aAAaC,QAAQ,eAAgB,IACrCD,aAAaC,QAAQ,gBAAiB,IACtCT,GAASU,EAAAA,EAAAA,OACTR,EAAS,SACX,EACMS,EAAQH,aAAaI,QAAQ,cACnCC,EAAAA,EACGC,OAAO,OAAO,iBAAmB,CAAEH,MAAAA,IACnCI,MAAK,WACJV,GACF,IACCW,OAAM,SAACC,GACNC,QAAQC,IAAIF,GACZZ,GACF,GACJ,CACAe,EACF,GAAG,CAACpB,EAAUE,KACPmB,EAAAA,EAAAA,KAACC,EAAAA,EAAgB,GAC1B,C","sources":["screens/LogoutPage/LogoutPage.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAppDispatch } from \"../../store\";\nimport { ErrorResponseHandler } from \"../../common/types\";\nimport { clearSession } from \"../../common/utils\";\nimport { userLogged } from \"../../systemSlice\";\nimport { resetSession } from \"../Console/consoleSlice\";\nimport api from \"../../common/api\";\nimport LoadingComponent from \"../../common/LoadingComponent\";\n\nconst LogoutPage = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n useEffect(() => {\n const logout = () => {\n const deleteSession = () => {\n clearSession();\n dispatch(userLogged(false));\n localStorage.setItem(\"userLoggedIn\", \"\");\n localStorage.setItem(\"redirect-path\", \"\");\n dispatch(resetSession());\n navigate(`/login`);\n };\n const state = localStorage.getItem(\"auth-state\");\n api\n .invoke(\"POST\", `/api/v1/logout`, { state })\n .then(() => {\n deleteSession();\n })\n .catch((err: ErrorResponseHandler) => {\n console.log(err);\n deleteSession();\n });\n };\n logout();\n }, [dispatch, navigate]);\n return <LoadingComponent />;\n};\n\nexport default LogoutPage;\n"],"names":["dispatch","useAppDispatch","navigate","useNavigate","useEffect","deleteSession","clearSession","userLogged","localStorage","setItem","resetSession","state","getItem","api","invoke","then","catch","err","console","log","logout","_jsx","LoadingComponent"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +0,0 @@
"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1329],{51270:function(e,n,t){var i=t(29439),r=(t(72791),t(51691)),o=t(9505),c=t(23508),s=t(75952),a=t(87995),l=t(81551),u=t(80184);n.Z=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,d=e.idp,f=e.idpType,p=(0,l.TL)(),x=(0,o.Z)((function(e){n(!0),p((0,a.cN)(!0===e.restart))}),(function(e){return p((0,a.Ih)(e))})),C=(0,i.Z)(x,2),m=C[0],h=C[1];if(!d)return null;var D="_"===d?"Default":d;return(0,u.jsx)(c.Z,{title:"Delete ".concat(D),confirmText:"Delete",isOpen:t,titleIcon:(0,u.jsx)(s.NvT,{}),isLoading:m,onConfirm:function(){h("DELETE","/api/v1/idp/".concat(f,"/").concat(d))},onClose:function(){return n(!1)},confirmButtonProps:{disabled:m},confirmationContent:(0,u.jsxs)(r.Z,{children:["Are you sure you want to delete IDP ",(0,u.jsx)("b",{children:D})," ","configuration? ",(0,u.jsx)("br",{})]})})}},31329:function(e,n,t){t.r(n),t.d(n,{default:function(){return _}});var i=t(72791),r=t(74165),o=t(15861),c=t(29439),s=t(1413),a=t(11135),l=t(25787),u=t(81551),d=t(57689),f=t(56087),p=t(38442),x=t(81207),C=t(87995),m=t(74794),h=t(23814),D=t(61889),Z=t(27454),j=t(75952),b=t(92983),y=t(51270),F=t(47974),I=t(80184),N=(0,l.Z)((function(e){return(0,a.Z)((0,s.Z)({},h.Bz))}))((function(e){var n=e.classes,t=e.idpType,s=(0,u.TL)(),a=(0,d.s0)(),l=(0,i.useState)(!1),h=(0,c.Z)(l,2),N=h[0],_=h[1],A=(0,i.useState)(""),T=(0,c.Z)(A,2),v=T[0],P=T[1],g=(0,i.useState)(!1),k=(0,c.Z)(g,2),E=k[0],O=k[1],M=(0,i.useState)([]),G=(0,c.Z)(M,2),U=G[0],w=G[1],L=(0,p.F)(f.C3,[f.Ft.ADMIN_CONFIG_UPDATE]),B=(0,p.F)(f.C3,[f.Ft.ADMIN_CONFIG_UPDATE]),K=(0,p.F)(f.C3,[f.Ft.ADMIN_CONFIG_UPDATE]);(0,i.useEffect)((function(){S()}),[]),(0,i.useEffect)((function(){E&&(K?x.Z.invoke("GET","/api/v1/idp/".concat(t)).then((function(e){O(!1),w(e.results.map((function(e){return e.name="_"===e.name?"Default":e.name,e.enabled=!0===e.enabled?"Enabled":"Disabled",e})))})).catch((function(e){O(!1),s((0,C.Ih)(e))})):O(!1))}),[E,O,w,s,K,t]);var S=function(){O(!0)},z=function(){var e=(0,o.Z)((0,r.Z)().mark((function e(n){return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:_(!1),n&&S();case 2:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),R=[{type:"view",onClick:function(e){var n="Default"===e.name?"_":e.name;a("/identity/idp/".concat(t,"/configurations/").concat(n))},disableButtonFunction:function(){return!B}},{type:"delete",onClick:function(e){_(!0),P(e="Default"===e?"_":e)},sendOnlyId:!0,disableButtonFunction:function(e){return!L||"Default"===e}}];return(0,I.jsxs)(i.Fragment,{children:[N&&(0,I.jsx)(y.Z,{deleteOpen:N,idp:v,idpType:t,closeDeleteModalAndRefresh:z}),(0,I.jsx)(F.Z,{label:"".concat(t.toUpperCase()," Configurations")}),(0,I.jsx)(m.Z,{className:n.pageContainer,children:(0,I.jsxs)(D.ZP,{container:!0,spacing:1,children:[(0,I.jsxs)(D.ZP,{item:!0,xs:12,display:"flex",alignItems:"center",justifyContent:"flex-end",sx:{"& button":{marginLeft:"8px"}},children:[(0,I.jsx)(p.s,{scopes:[f.Ft.ADMIN_CONFIG_UPDATE],resource:f.C3,errorProps:{disabled:!0},children:(0,I.jsx)(Z.Z,{tooltip:"Refresh",children:(0,I.jsx)(j.zxk,{id:"refresh-keys",variant:"regular",icon:(0,I.jsx)(j.DuK,{}),onClick:function(){return O(!0)}})})}),(0,I.jsx)(p.s,{scopes:[f.Ft.ADMIN_CONFIG_UPDATE],resource:f.C3,errorProps:{disabled:!0},children:(0,I.jsx)(Z.Z,{tooltip:"Create ".concat(t," configuration"),children:(0,I.jsx)(j.zxk,{id:"create-idp",label:"Create Configuration",variant:"callAction",icon:(0,I.jsx)(j.dtP,{}),onClick:function(){return a("/identity/idp/".concat(t,"/configurations/add-idp"))}})})})]}),(0,I.jsx)(D.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,I.jsx)(p.s,{scopes:[f.Ft.ADMIN_CONFIG_UPDATE],resource:f.C3,errorProps:{disabled:!0},children:(0,I.jsx)(b.Z,{itemActions:R,columns:[{label:"Name",elementKey:"name"},{label:"Type",elementKey:"type"},{label:"Enabled",elementKey:"enabled"}],isLoading:E,records:U,entityName:"Keys",idField:"name"})})})]})})]})})),_=function(){return(0,I.jsx)(N,{idpType:"openid"})}}}]);
//# sourceMappingURL=1329.98d80e22.chunk.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1329],{51270:function(e,n,t){var i=t(29439),r=(t(72791),t(51691)),o=t(9505),s=t(23508),a=t(29945),c=t(87995),u=t(81551),l=t(80184);n.Z=function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,d=e.idp,f=e.idpType,p=(0,u.TL)(),x=(0,o.Z)((function(e){n(!0),p((0,c.cN)(!0===e.restart))}),(function(e){return p((0,c.Ih)(e))})),C=(0,i.Z)(x,2),h=C[0],m=C[1];if(!d)return null;var j="_"===d?"Default":d;return(0,l.jsx)(s.Z,{title:"Delete ".concat(j),confirmText:"Delete",isOpen:t,titleIcon:(0,l.jsx)(a.NvT,{}),isLoading:h,onConfirm:function(){m("DELETE","/api/v1/idp/".concat(f,"/").concat(d))},onClose:function(){return n(!1)},confirmButtonProps:{disabled:h},confirmationContent:(0,l.jsxs)(r.Z,{children:["Are you sure you want to delete IDP ",(0,l.jsx)("b",{children:j})," ","configuration? ",(0,l.jsx)("br",{})]})})}},31329:function(e,n,t){t.r(n),t.d(n,{default:function(){return N}});var i=t(72791),r=t(74165),o=t(15861),s=t(29439),a=t(1413),c=t(11135),u=t(25787),l=t(81551),d=t(57689),f=t(56087),p=t(38442),x=t(87995),C=t(23814),h=t(61889),m=t(27454),j=t(29945),D=t(92983),Z=t(51270),b=t(47974),y=t(99670),F=t(31776),_=t(82342),g=t(80184),I=(0,u.Z)((function(e){return(0,c.Z)((0,a.Z)({},C.Bz))}))((function(e){var n=e.classes,t=e.idpType,a=(0,l.TL)(),c=(0,d.s0)(),u=(0,i.useState)(!1),C=(0,s.Z)(u,2),I=C[0],N=C[1],A=(0,i.useState)(""),T=(0,s.Z)(A,2),P=T[0],v=T[1],E=(0,i.useState)(!1),k=(0,s.Z)(E,2),O=k[0],M=k[1],U=(0,i.useState)([]),w=(0,s.Z)(U,2),G=w[0],L=w[1],B=(0,p.F)(f.C3,[f.Ft.ADMIN_CONFIG_UPDATE]),K=(0,p.F)(f.C3,[f.Ft.ADMIN_CONFIG_UPDATE]),S=(0,p.F)(f.C3,[f.Ft.ADMIN_CONFIG_UPDATE]);(0,i.useEffect)((function(){z()}),[]),(0,i.useEffect)((function(){O&&(S?F.h.idp.listConfigurations(t).then((function(e){M(!1),e.data.results&&L(e.data.results.map((function(e){return e.name="_"===e.name?"Default":e.name,e.enabled=!0===e.enabled?"Enabled":"Disabled",e})))})).catch((function(e){M(!1),a((0,x.Ih)((0,_.g)(e.error)))})):M(!1))}),[O,M,L,a,S,t]);var z=function(){M(!0)},R=function(){var e=(0,o.Z)((0,r.Z)().mark((function e(n){return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:N(!1),n&&z();case 2:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),X=[{type:"view",onClick:function(e){var n="Default"===e.name?"_":e.name;c("/identity/idp/".concat(t,"/configurations/").concat(n))},disableButtonFunction:function(){return!K}},{type:"delete",onClick:function(e){N(!0),v(e="Default"===e?"_":e)},sendOnlyId:!0,disableButtonFunction:function(e){return!B||"Default"===e}}];return(0,i.useEffect)((function(){a((0,x.Sc)("idp_configs"))}),[]),(0,g.jsxs)(i.Fragment,{children:[I&&(0,g.jsx)(Z.Z,{deleteOpen:I,idp:P,idpType:t,closeDeleteModalAndRefresh:R}),(0,g.jsx)(b.Z,{label:"".concat(t.toUpperCase()," Configurations"),actions:(0,g.jsx)(y.Z,{})}),(0,g.jsx)(j.Xgh,{className:n.pageContainer,children:(0,g.jsxs)(h.ZP,{container:!0,spacing:1,children:[(0,g.jsxs)(h.ZP,{item:!0,xs:12,display:"flex",alignItems:"center",justifyContent:"flex-end",sx:{"& button":{marginLeft:"8px"}},children:[(0,g.jsx)(p.s,{scopes:[f.Ft.ADMIN_CONFIG_UPDATE],resource:f.C3,errorProps:{disabled:!0},children:(0,g.jsx)(m.Z,{tooltip:"Refresh",children:(0,g.jsx)(j.zxk,{id:"refresh-keys",variant:"regular",icon:(0,g.jsx)(j.DuK,{}),onClick:function(){return M(!0)}})})}),(0,g.jsx)(p.s,{scopes:[f.Ft.ADMIN_CONFIG_UPDATE],resource:f.C3,errorProps:{disabled:!0},children:(0,g.jsx)(m.Z,{tooltip:"Create ".concat(t," configuration"),children:(0,g.jsx)(j.zxk,{id:"create-idp",label:"Create Configuration",variant:"callAction",icon:(0,g.jsx)(j.dtP,{}),onClick:function(){return c("/identity/idp/".concat(t,"/configurations/add-idp"))}})})})]}),(0,g.jsx)(h.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,g.jsx)(p.s,{scopes:[f.Ft.ADMIN_CONFIG_UPDATE],resource:f.C3,errorProps:{disabled:!0},children:(0,g.jsx)(D.Z,{itemActions:X,columns:[{label:"Name",elementKey:"name"},{label:"Type",elementKey:"type"},{label:"Enabled",elementKey:"enabled"}],isLoading:O,records:G,entityName:"Keys",idField:"name"})})})]})})]})})),N=function(){return(0,g.jsx)(I,{idpType:"openid"})}}}]);
//# sourceMappingURL=1329.ebb06e52.chunk.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1705],{71705:function(n,e,t){"use strict";t.r(e);var u=t(29439),r=t(72791),o=t(9505),c=t(64554),i=t(56087),l=t(38442),s=t(26181),a=t.n(s),f=t(81918),d=t(29823),p=t(42419),v=t(75578),Z=t(29945),h=t(87995),x=t(81551),_=t(80184),T=(0,v.Z)(r.lazy((function(){return Promise.all([t.e(5473),t.e(5994),t.e(7391),t.e(247)]).then(t.bind(t,40247))}))),b=(0,v.Z)(r.lazy((function(){return t.e(2763).then(t.bind(t,22763))})));e.default=function(n){var e=n.bucketName,t=(0,x.TL)(),s=(0,r.useState)(null),v=(0,u.Z)(s,2),m=v[0],j=v[1],C=(0,r.useState)(!1),g=(0,u.Z)(C,2),S=g[0],k=g[1],y=(0,r.useState)([]),G=(0,u.Z)(y,2),I=G[0],P=G[1],A=(0,r.useState)(["",""]),E=(0,u.Z)(A,2),F=E[0],N=E[1],U=(0,r.useState)(!1),w=(0,u.Z)(U,2),O=w[0],z=w[1],M=(0,o.Z)((function(n){var e,t;null!=n&&null!=(null===n||void 0===n?void 0:n.details)&&"tags"in(null===n||void 0===n?void 0:n.details)&&(j(null===n||void 0===n||null===(e=n.details)||void 0===e?void 0:e.tags),P(Object.keys(null===n||void 0===n||null===(t=n.details)||void 0===t?void 0:t.tags)))}),(function(n){t((0,h.Ih)(n))})),B=(0,u.Z)(M,2),D=B[0],K=B[1],R=function(){K("GET","/api/v1/buckets/".concat(e))};return(0,r.useEffect)((function(){R()}),[e]),(0,_.jsxs)(c.Z,{children:[D?(0,_.jsx)(Z.aNw,{style:{width:16,height:16}}):null,(0,_.jsx)(l.s,{scopes:[i.Ft.S3_GET_BUCKET_TAGGING,i.Ft.S3_GET_ACTIONS],resource:e,children:(0,_.jsxs)(c.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,_.jsx)(c.Z,{children:I&&I.map((function(n,t){var u=a()(m,"".concat(n),"");return""!==u?(0,_.jsx)(l.s,{scopes:[i.Ft.S3_PUT_BUCKET_TAGGING,i.Ft.S3_PUT_ACTIONS],resource:e,matchAll:!0,errorProps:{deleteIcon:null,onDelete:null},children:(0,_.jsx)(f.Z,{style:{textTransform:"none",marginRight:"5px"},size:"small",label:"".concat(n," : ").concat(u),color:"primary",deleteIcon:(0,_.jsx)(d.Z,{}),onDelete:function(){!function(n,e){N([n,e]),z(!0)}(n,u)}})},"chip-".concat(t)):null}))}),(0,_.jsx)(l.s,{scopes:[i.Ft.S3_PUT_BUCKET_TAGGING,i.Ft.S3_PUT_ACTIONS],resource:e,errorProps:{disabled:!0,onClick:null},children:(0,_.jsx)(f.Z,{style:{maxWidth:80,marginTop:"10px"},icon:(0,_.jsx)(p.Z,{}),clickable:!0,size:"small",label:"Add tag",color:"primary",variant:"outlined",onClick:function(){k(!0)}})})]})}),S&&(0,_.jsx)(T,{modalOpen:S,currentTags:m,bucketName:e,onCloseAndUpdate:function(n){k(!1),n&&R()}}),O&&(0,_.jsx)(b,{deleteOpen:O,currentTags:m,bucketName:e,onCloseAndUpdate:function(n){z(!1),n&&R()},selectedTag:F})]})}},42419:function(n,e,t){"use strict";var u=t(64836);e.Z=void 0;var r=u(t(45649)),o=t(80184),c=(0,r.default)((0,o.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");e.Z=c},29823:function(n,e,t){"use strict";var u=t(64836);e.Z=void 0;var r=u(t(45649)),o=t(80184),c=(0,r.default)((0,o.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");e.Z=c},45649:function(n,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return u.createSvgIcon}});var u=t(28610)},31260:function(n,e,t){"use strict";var u=t(78949);e.Z=u.Z},28610:function(n,e,t){"use strict";t.r(e),t.d(e,{capitalize:function(){return r.Z},createChainedFunction:function(){return o.Z},createSvgIcon:function(){return c.Z},debounce:function(){return i.Z},deprecatedPropType:function(){return l},isMuiElement:function(){return s.Z},ownerDocument:function(){return a.Z},ownerWindow:function(){return f.Z},requirePropFactory:function(){return d},setRef:function(){return p},unstable_ClassNameGenerator:function(){return m},unstable_useEnhancedEffect:function(){return v.Z},unstable_useId:function(){return Z.Z},unsupportedProp:function(){return h},useControlled:function(){return x.Z},useEventCallback:function(){return _.Z},useForkRef:function(){return T.Z},useIsFocusVisible:function(){return b.Z}});var u=t(55902),r=t(14036),o=t(31260),c=t(76189),i=t(83199);var l=function(n,e){return function(){return null}},s=t(19103),a=t(98301),f=t(17602);t(87462);var d=function(n,e){return function(){return null}},p=t(62971).Z,v=t(40162),Z=t(67384);var h=function(n,e,t,u,r){return null},x=t(98278),_=t(89683),T=t(42071),b=t(23031),m={configure:function(n){u.Z.configure(n)}}},64836:function(n){n.exports=function(n){return n&&n.__esModule?n:{default:n}},n.exports.__esModule=!0,n.exports.default=n.exports}}]);
//# sourceMappingURL=1705.0632aaa2.chunk.js.map

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +0,0 @@
"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1705],{71705:function(e,n,t){t.r(n);var l=t(29439),s=t(72791),o=t(9505),i=t(64554),a=t(56087),c=t(38442),u=t(26181),r=t.n(u),d=t(81918),h=t(29823),f=t(42419),p=t(75578),v=t(75952),T=t(87995),x=t(81551),Z=t(80184),_=(0,p.Z)(s.lazy((function(){return t.e(247).then(t.bind(t,40247))}))),j=(0,p.Z)(s.lazy((function(){return t.e(2763).then(t.bind(t,22763))})));n.default=function(e){var n=e.bucketName,t=(0,x.TL)(),u=(0,s.useState)(null),p=(0,l.Z)(u,2),m=p[0],S=p[1],b=(0,s.useState)(!1),k=(0,l.Z)(b,2),C=k[0],G=k[1],g=(0,s.useState)([]),A=(0,l.Z)(g,2),N=A[0],y=A[1],I=(0,s.useState)(["",""]),U=(0,l.Z)(I,2),E=U[0],F=U[1],O=(0,s.useState)(!1),P=(0,l.Z)(O,2),w=P[0],z=P[1],B=(0,o.Z)((function(e){var n,t;null!=e&&null!=(null===e||void 0===e?void 0:e.details)&&"tags"in(null===e||void 0===e?void 0:e.details)&&(S(null===e||void 0===e||null===(n=e.details)||void 0===n?void 0:n.tags),y(Object.keys(null===e||void 0===e||null===(t=e.details)||void 0===t?void 0:t.tags)))}),(function(e){t((0,T.Ih)(e))})),K=(0,l.Z)(B,2),D=K[0],H=K[1],L=function(){H("GET","/api/v1/buckets/".concat(n))};return(0,s.useEffect)((function(){L()}),[n]),(0,Z.jsxs)(i.Z,{children:[D?(0,Z.jsx)(v.aNw,{style:{width:16,height:16}}):null,(0,Z.jsx)(c.s,{scopes:[a.Ft.S3_GET_BUCKET_TAGGING,a.Ft.S3_GET_ACTIONS],resource:n,children:(0,Z.jsxs)(i.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,Z.jsx)(i.Z,{children:N&&N.map((function(e,t){var l=r()(m,"".concat(e),"");return""!==l?(0,Z.jsx)(c.s,{scopes:[a.Ft.S3_PUT_BUCKET_TAGGING,a.Ft.S3_PUT_ACTIONS],resource:n,matchAll:!0,errorProps:{deleteIcon:null,onDelete:null},children:(0,Z.jsx)(d.Z,{style:{textTransform:"none",marginRight:"5px"},size:"small",label:"".concat(e," : ").concat(l),color:"primary",deleteIcon:(0,Z.jsx)(h.Z,{}),onDelete:function(){!function(e,n){F([e,n]),z(!0)}(e,l)}})},"chip-".concat(t)):null}))}),(0,Z.jsx)(c.s,{scopes:[a.Ft.S3_PUT_BUCKET_TAGGING,a.Ft.S3_PUT_ACTIONS],resource:n,errorProps:{disabled:!0,onClick:null},children:(0,Z.jsx)(d.Z,{style:{maxWidth:80,marginTop:"10px"},icon:(0,Z.jsx)(f.Z,{}),clickable:!0,size:"small",label:"Add tag",color:"primary",variant:"outlined",onClick:function(){G(!0)}})})]})}),C&&(0,Z.jsx)(_,{modalOpen:C,currentTags:m,bucketName:n,onCloseAndUpdate:function(e){G(!1),e&&L()}}),w&&(0,Z.jsx)(j,{deleteOpen:w,currentTags:m,bucketName:n,onCloseAndUpdate:function(e){z(!1),e&&L()},selectedTag:E})]})}},42419:function(e,n,t){var l=t(64836);n.Z=void 0;var s=l(t(45649)),o=t(80184),i=(0,s.default)((0,o.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=i}}]);
//# sourceMappingURL=1705.27697aac.chunk.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More