Compare commits

...

61 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
803 changed files with 13237 additions and 12365 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
@@ -1411,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
@@ -1434,6 +1279,8 @@ jobs:
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,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)
}

67
go.mod
View File

@@ -19,33 +19,27 @@ require (
github.com/jessevdk/go-flags v1.5.0
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.1.1
github.com/minio/mc v0.0.0-20230509151326-6050568e66a6
github.com/minio/minio-go/v7 v7.0.52
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.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.8.0
golang.org/x/net v0.9.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.9.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
k8s.io/api v0.27.1 // indirect
k8s.io/apimachinery v0.27.1 // indirect
k8s.io/client-go v0.27.1
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
@@ -145,15 +123,10 @@ require (
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/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.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/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
@@ -167,24 +140,14 @@ require (
go.uber.org/atomic 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.7.0 // indirect
golang.org/x/term v0.7.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-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
)

1083
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"
@@ -461,24 +460,12 @@ func ListObjects(bucketName, prefix, withVersions string) (*http.Response, error
return response, err
}
func SharesAnObjectOnAUrl(bucketName, prefix, versionID, expires, accessKey, secretKey string) (*http.Response, error) {
// Helper function to share an object on an url
requestDataAdd := map[string]interface{}{
"prefix": prefix,
"version_id": versionID,
"expires": expires,
"access_key": accessKey,
"secret_key": secretKey,
}
requestDataJSON, _ := json.Marshal(requestDataAdd)
requestDataBody := bytes.NewReader(requestDataJSON)
func SharesAnObjectOnAUrl(bucketName, prefix, versionID, expires string) (*http.Response, error) {
// Helper function to share an object on a url
request, err := http.NewRequest(
"POST",
"http://localhost:9090/api/v1/buckets/"+bucketName+"/objects/share",
requestDataBody,
"GET",
"http://localhost:9090/api/v1/buckets/"+bucketName+"/objects/share?prefix="+prefix+"&version_id="+versionID+"&expires="+expires,
nil,
)
if err != nil {
log.Println(err)
@@ -755,39 +742,6 @@ func PutObjectsLegalholdStatus(bucketName, prefix, status, versionID string) (*h
return response, err
}
func PostServiceAccountCredentials(accessKey, secretKey, policy string) (*http.Response, error) {
/*
Helper function to create a service account
POST: {{baseUrl}}/service-account-credentials
{
"accessKey":"testsa",
"secretKey":"secretsa",
"policy":""
}
*/
requestDataAdd := map[string]interface{}{
"accessKey": accessKey,
"secretKey": secretKey,
"policy": policy,
}
requestDataJSON, _ := json.Marshal(requestDataAdd)
requestDataBody := bytes.NewReader(requestDataJSON)
request, err := http.NewRequest("POST",
"http://localhost:9090/api/v1/service-account-credentials",
requestDataBody)
if err != nil {
log.Println(err)
}
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
request.Header.Add("Content-Type", "application/json")
client := &http.Client{
Timeout: 2 * time.Second,
}
response, err := client.Do(request)
return response, err
}
func TestPutObjectsLegalholdStatus(t *testing.T) {
// Variables
assert := assert.New(t)
@@ -822,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 {
@@ -1103,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 {
@@ -1271,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 {
@@ -1488,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 {
@@ -1559,8 +1513,6 @@ func TestShareObjectOnURL(t *testing.T) {
tags := make(map[string]string)
tags["tag"] = "testputobjecttagbucketonetagone"
versionID := "null"
accessKey := "testaccesskey"
secretKey := "secretAccessKey"
// 1. Create the bucket
if !setupBucket(bucketName, false, false, nil, nil, assert, 200) {
@@ -1581,21 +1533,6 @@ func TestShareObjectOnURL(t *testing.T) {
inspectHTTPResponse(uploadResponse),
)
}
// 2. Create Access Key
accKeyRsp, createError := PostServiceAccountCredentials(accessKey, secretKey, "")
if createError != nil {
log.Println(createError)
return
}
if accKeyRsp != nil {
assert.Equal(
201,
accKeyRsp.StatusCode,
inspectHTTPResponse(accKeyRsp),
)
}
type args struct {
prefix string
@@ -1623,7 +1560,7 @@ func TestShareObjectOnURL(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
// 3. Share the object on a URL
shareResponse, shareError := SharesAnObjectOnAUrl(bucketName, tt.args.prefix, versionID, "604800s", accessKey, secretKey)
shareResponse, shareError := SharesAnObjectOnAUrl(bucketName, tt.args.prefix, versionID, "604800s")
assert.Nil(shareError)
if shareError != nil {
log.Println(shareError)
@@ -1838,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)
}
@@ -2231,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)))
@@ -2277,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)
@@ -2317,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)
@@ -2354,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,
@@ -2431,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)
@@ -2449,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)
@@ -2909,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 {
@@ -2991,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 {
@@ -3058,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 {
@@ -3139,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,
@@ -3222,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 {
@@ -3254,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 {
@@ -3499,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 {
@@ -3545,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 {
@@ -3705,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 {
@@ -3743,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 {
@@ -4012,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

@@ -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

@@ -1,142 +0,0 @@
// Code generated by go-swagger; DO NOT EDIT.
// This file is part of MinIO Console Server
// Copyright (c) 2023 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 models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ShareRequest share request
//
// swagger:model shareRequest
type ShareRequest struct {
// access key
// Required: true
AccessKey *string `json:"access_key"`
// expires
Expires string `json:"expires,omitempty"`
// prefix
// Required: true
Prefix *string `json:"prefix"`
// secret key
// Required: true
SecretKey *string `json:"secret_key"`
// version id
// Required: true
VersionID *string `json:"version_id"`
}
// Validate validates this share request
func (m *ShareRequest) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateAccessKey(formats); err != nil {
res = append(res, err)
}
if err := m.validatePrefix(formats); err != nil {
res = append(res, err)
}
if err := m.validateSecretKey(formats); err != nil {
res = append(res, err)
}
if err := m.validateVersionID(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ShareRequest) validateAccessKey(formats strfmt.Registry) error {
if err := validate.Required("access_key", "body", m.AccessKey); err != nil {
return err
}
return nil
}
func (m *ShareRequest) validatePrefix(formats strfmt.Registry) error {
if err := validate.Required("prefix", "body", m.Prefix); err != nil {
return err
}
return nil
}
func (m *ShareRequest) validateSecretKey(formats strfmt.Registry) error {
if err := validate.Required("secret_key", "body", m.SecretKey); err != nil {
return err
}
return nil
}
func (m *ShareRequest) validateVersionID(formats strfmt.Registry) error {
if err := validate.Required("version_id", "body", m.VersionID); err != nil {
return err
}
return nil
}
// ContextValidate validates this share request based on context it is used
func (m *ShareRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ShareRequest) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ShareRequest) UnmarshalBinary(b []byte) error {
var res ShareRequest
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

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

@@ -16,6 +16,9 @@ test-warnings:
test-prettier:
./check-prettier.sh
find-deadcode:
./check-deadcode.sh
prettify:
yarn prettier --write . --loglevel warn

View File

@@ -1,140 +1,130 @@
{
"files": {
"main.css": "./static/css/main.7f39beab.css",
"main.js": "./static/js/main.7d87c452.js",
"main.js": "./static/js/main.81adfdde.js",
"static/js/1260.a025e586.chunk.js": "./static/js/1260.a025e586.chunk.js",
"static/js/6914.bb5d420f.chunk.js": "./static/js/6914.bb5d420f.chunk.js",
"static/js/3446.9ea9fd9e.chunk.js": "./static/js/3446.9ea9fd9e.chunk.js",
"static/js/1829.929d5c39.chunk.js": "./static/js/1829.929d5c39.chunk.js",
"static/js/193.235dd13b.chunk.js": "./static/js/193.235dd13b.chunk.js",
"static/js/5088.45c9824e.chunk.js": "./static/js/5088.45c9824e.chunk.js",
"static/js/6122.e4ffcf6b.chunk.js": "./static/js/6122.e4ffcf6b.chunk.js",
"static/js/808.1c5ccab3.chunk.js": "./static/js/808.1c5ccab3.chunk.js",
"static/js/8060.72b9138c.chunk.js": "./static/js/8060.72b9138c.chunk.js",
"static/js/6765.17759907.chunk.js": "./static/js/6765.17759907.chunk.js",
"static/js/2338.f2e3b9d4.chunk.js": "./static/js/2338.f2e3b9d4.chunk.js",
"static/js/4335.e73f294b.chunk.js": "./static/js/4335.e73f294b.chunk.js",
"static/js/9315.94bc4162.chunk.js": "./static/js/9315.94bc4162.chunk.js",
"static/js/842.94d22304.chunk.js": "./static/js/842.94d22304.chunk.js",
"static/js/4061.c26d8978.chunk.js": "./static/js/4061.c26d8978.chunk.js",
"static/js/3067.a79bb499.chunk.js": "./static/js/3067.a79bb499.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/css/5370.6d5cfeb1.chunk.css": "./static/css/5370.6d5cfeb1.chunk.css",
"static/js/5370.bcc67c67.chunk.js": "./static/js/5370.bcc67c67.chunk.js",
"static/js/701.3916b3b0.chunk.js": "./static/js/701.3916b3b0.chunk.js",
"static/js/7821.30d84224.chunk.js": "./static/js/7821.30d84224.chunk.js",
"static/css/284.6d5cfeb1.chunk.css": "./static/css/284.6d5cfeb1.chunk.css",
"static/js/284.2272d607.chunk.js": "./static/js/284.2272d607.chunk.js",
"static/js/8388.85d69c36.chunk.js": "./static/js/8388.85d69c36.chunk.js",
"static/css/9781.6d5cfeb1.chunk.css": "./static/css/9781.6d5cfeb1.chunk.css",
"static/js/9781.5138af65.chunk.js": "./static/js/9781.5138af65.chunk.js",
"static/css/8936.6d5cfeb1.chunk.css": "./static/css/8936.6d5cfeb1.chunk.css",
"static/js/8936.32db27d8.chunk.js": "./static/js/8936.32db27d8.chunk.js",
"static/css/1195.6d5cfeb1.chunk.css": "./static/css/1195.6d5cfeb1.chunk.css",
"static/js/1195.c88c104c.chunk.js": "./static/js/1195.c88c104c.chunk.js",
"static/js/2766.a907ade6.chunk.js": "./static/js/2766.a907ade6.chunk.js",
"static/js/8658.3e576725.chunk.js": "./static/js/8658.3e576725.chunk.js",
"static/js/7614.c26e0388.chunk.js": "./static/js/7614.c26e0388.chunk.js",
"static/js/1690.74411b75.chunk.js": "./static/js/1690.74411b75.chunk.js",
"static/js/6491.cb84de50.chunk.js": "./static/js/6491.cb84de50.chunk.js",
"static/js/4902.ca4d4b9b.chunk.js": "./static/js/4902.ca4d4b9b.chunk.js",
"static/js/1432.0fd16e2a.chunk.js": "./static/js/1432.0fd16e2a.chunk.js",
"static/js/9243.438cd458.chunk.js": "./static/js/9243.438cd458.chunk.js",
"static/js/8360.09237eed.chunk.js": "./static/js/8360.09237eed.chunk.js",
"static/js/6577.0dd0770b.chunk.js": "./static/js/6577.0dd0770b.chunk.js",
"static/js/3875.1b1cdf95.chunk.js": "./static/js/3875.1b1cdf95.chunk.js",
"static/js/3115.ea1636fa.chunk.js": "./static/js/3115.ea1636fa.chunk.js",
"static/js/5708.f77982a5.chunk.js": "./static/js/5708.f77982a5.chunk.js",
"static/js/977.f5285832.chunk.js": "./static/js/977.f5285832.chunk.js",
"static/js/6686.4148281b.chunk.js": "./static/js/6686.4148281b.chunk.js",
"static/js/5656.28a8d11c.chunk.js": "./static/js/5656.28a8d11c.chunk.js",
"static/js/91.e520a97c.chunk.js": "./static/js/91.e520a97c.chunk.js",
"static/js/9666.5da08ac7.chunk.js": "./static/js/9666.5da08ac7.chunk.js",
"static/js/4414.bd064f0a.chunk.js": "./static/js/4414.bd064f0a.chunk.js",
"static/js/8833.bffd8a72.chunk.js": "./static/js/8833.bffd8a72.chunk.js",
"static/js/1516.77785cd8.chunk.js": "./static/js/1516.77785cd8.chunk.js",
"static/js/483.6b4acaca.chunk.js": "./static/js/483.6b4acaca.chunk.js",
"static/js/4114.7f28b8fd.chunk.js": "./static/js/4114.7f28b8fd.chunk.js",
"static/js/6895.ede8e880.chunk.js": "./static/js/6895.ede8e880.chunk.js",
"static/js/5465.8959d405.chunk.js": "./static/js/5465.8959d405.chunk.js",
"static/css/1155.6d5cfeb1.chunk.css": "./static/css/1155.6d5cfeb1.chunk.css",
"static/js/1155.77ab901b.chunk.js": "./static/js/1155.77ab901b.chunk.js",
"static/js/3956.d190ab9d.chunk.js": "./static/js/3956.d190ab9d.chunk.js",
"static/js/9221.9f74a390.chunk.js": "./static/js/9221.9f74a390.chunk.js",
"static/js/8896.b42caa61.chunk.js": "./static/js/8896.b42caa61.chunk.js",
"static/js/9134.c6c3f8d9.chunk.js": "./static/js/9134.c6c3f8d9.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.53057d05.chunk.js": "./static/js/5661.53057d05.chunk.js",
"static/js/6493.e56bf22e.chunk.js": "./static/js/6493.e56bf22e.chunk.js",
"static/js/3034.81b1b236.chunk.js": "./static/js/3034.81b1b236.chunk.js",
"static/css/8925.6d5cfeb1.chunk.css": "./static/css/8925.6d5cfeb1.chunk.css",
"static/js/8925.804545ac.chunk.js": "./static/js/8925.804545ac.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/5998.6de29890.chunk.js": "./static/js/5998.6de29890.chunk.js",
"static/js/119.7142376a.chunk.js": "./static/js/119.7142376a.chunk.js",
"static/js/9918.f2916d91.chunk.js": "./static/js/9918.f2916d91.chunk.js",
"static/js/2733.4eb78cde.chunk.js": "./static/js/2733.4eb78cde.chunk.js",
"static/js/9002.9ee60291.chunk.js": "./static/js/9002.9ee60291.chunk.js",
"static/js/51.3b7ac0bb.chunk.js": "./static/js/51.3b7ac0bb.chunk.js",
"static/js/312.36182e3e.chunk.js": "./static/js/312.36182e3e.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.c77024f7.chunk.js": "./static/js/4619.c77024f7.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.28c47271.chunk.js": "./static/js/8455.28c47271.chunk.js",
"static/css/7233.6d5cfeb1.chunk.css": "./static/css/7233.6d5cfeb1.chunk.css",
"static/js/7233.27f033e9.chunk.js": "./static/js/7233.27f033e9.chunk.js",
"static/js/1609.f0705551.chunk.js": "./static/js/1609.f0705551.chunk.js",
"static/js/9952.b6aabb99.chunk.js": "./static/js/9952.b6aabb99.chunk.js",
"static/js/402.7e563de3.chunk.js": "./static/js/402.7e563de3.chunk.js",
"static/js/1705.bf628870.chunk.js": "./static/js/1705.bf628870.chunk.js",
"static/js/1581.fe2c6b2c.chunk.js": "./static/js/1581.fe2c6b2c.chunk.js",
"static/js/455.10c22444.chunk.js": "./static/js/455.10c22444.chunk.js",
"static/js/2921.9f05320f.chunk.js": "./static/js/2921.9f05320f.chunk.js",
"static/js/889.954fb6a3.chunk.js": "./static/js/889.954fb6a3.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/6639.5cc622e2.chunk.js": "./static/js/6639.5cc622e2.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/5994.630a8a7b.chunk.js": "./static/js/5994.630a8a7b.chunk.js",
"static/js/7391.a8c89f77.chunk.js": "./static/js/7391.a8c89f77.chunk.js",
"static/js/2303.32f1acf1.chunk.js": "./static/js/2303.32f1acf1.chunk.js",
"static/js/3691.8a4fe1f5.chunk.js": "./static/js/3691.8a4fe1f5.chunk.js",
"static/js/6481.13d4264b.chunk.js": "./static/js/6481.13d4264b.chunk.js",
"static/js/1520.af5d5afd.chunk.js": "./static/js/1520.af5d5afd.chunk.js",
"static/js/3682.4537dc89.chunk.js": "./static/js/3682.4537dc89.chunk.js",
"static/js/1918.5ab76596.chunk.js": "./static/js/1918.5ab76596.chunk.js",
"static/js/7847.ac3e4228.chunk.js": "./static/js/7847.ac3e4228.chunk.js",
"static/js/6195.f15db24b.chunk.js": "./static/js/6195.f15db24b.chunk.js",
"static/js/1427.470a9bca.chunk.js": "./static/js/1427.470a9bca.chunk.js",
"static/js/3801.e125737d.chunk.js": "./static/js/3801.e125737d.chunk.js",
"static/js/9414.038100c0.chunk.js": "./static/js/9414.038100c0.chunk.js",
"static/js/8173.8aba7982.chunk.js": "./static/js/8173.8aba7982.chunk.js",
"static/js/5415.dbae49d4.chunk.js": "./static/js/5415.dbae49d4.chunk.js",
"static/js/8265.a7f4cd6e.chunk.js": "./static/js/8265.a7f4cd6e.chunk.js",
"static/js/375.5aee7265.chunk.js": "./static/js/375.5aee7265.chunk.js",
"static/js/5284.4c8d46d3.chunk.js": "./static/js/5284.4c8d46d3.chunk.js",
"static/js/9425.3248dd51.chunk.js": "./static/js/9425.3248dd51.chunk.js",
"static/js/4102.543f88a5.chunk.js": "./static/js/4102.543f88a5.chunk.js",
"static/js/6903.ea5c8ae0.chunk.js": "./static/js/6903.ea5c8ae0.chunk.js",
"static/js/5871.10749c09.chunk.js": "./static/js/5871.10749c09.chunk.js",
"static/js/2960.ff0e1ef0.chunk.js": "./static/js/2960.ff0e1ef0.chunk.js",
"static/js/9135.9f49ec5b.chunk.js": "./static/js/9135.9f49ec5b.chunk.js",
"static/js/357.b43cdd5a.chunk.js": "./static/js/357.b43cdd5a.chunk.js",
"static/js/3141.674df617.chunk.js": "./static/js/3141.674df617.chunk.js",
"static/js/1388.babd16fa.chunk.js": "./static/js/1388.babd16fa.chunk.js",
"static/js/4251.d89d9645.chunk.js": "./static/js/4251.d89d9645.chunk.js",
"static/js/24.604f9040.chunk.js": "./static/js/24.604f9040.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/7521.66cdcc44.chunk.js": "./static/js/7521.66cdcc44.chunk.js",
"static/js/2422.53d27798.chunk.js": "./static/js/2422.53d27798.chunk.js",
"static/js/9302.9404e216.chunk.js": "./static/js/9302.9404e216.chunk.js",
"static/js/221.45a05e5d.chunk.js": "./static/js/221.45a05e5d.chunk.js",
"static/js/5292.9f745b3f.chunk.js": "./static/js/5292.9f745b3f.chunk.js",
"static/js/2358.4c8b0e1c.chunk.js": "./static/js/2358.4c8b0e1c.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/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/4169.aeebcd8e.chunk.js": "./static/js/4169.aeebcd8e.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",
@@ -155,145 +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.7f39beab.css.map": "./static/css/main.7f39beab.css.map",
"main.7d87c452.js.map": "./static/js/main.7d87c452.js.map",
"main.81adfdde.js.map": "./static/js/main.81adfdde.js.map",
"1260.a025e586.chunk.js.map": "./static/js/1260.a025e586.chunk.js.map",
"6914.bb5d420f.chunk.js.map": "./static/js/6914.bb5d420f.chunk.js.map",
"3446.9ea9fd9e.chunk.js.map": "./static/js/3446.9ea9fd9e.chunk.js.map",
"1829.929d5c39.chunk.js.map": "./static/js/1829.929d5c39.chunk.js.map",
"193.235dd13b.chunk.js.map": "./static/js/193.235dd13b.chunk.js.map",
"5088.45c9824e.chunk.js.map": "./static/js/5088.45c9824e.chunk.js.map",
"6122.e4ffcf6b.chunk.js.map": "./static/js/6122.e4ffcf6b.chunk.js.map",
"808.1c5ccab3.chunk.js.map": "./static/js/808.1c5ccab3.chunk.js.map",
"8060.72b9138c.chunk.js.map": "./static/js/8060.72b9138c.chunk.js.map",
"6765.17759907.chunk.js.map": "./static/js/6765.17759907.chunk.js.map",
"2338.f2e3b9d4.chunk.js.map": "./static/js/2338.f2e3b9d4.chunk.js.map",
"4335.e73f294b.chunk.js.map": "./static/js/4335.e73f294b.chunk.js.map",
"9315.94bc4162.chunk.js.map": "./static/js/9315.94bc4162.chunk.js.map",
"842.94d22304.chunk.js.map": "./static/js/842.94d22304.chunk.js.map",
"4061.c26d8978.chunk.js.map": "./static/js/4061.c26d8978.chunk.js.map",
"3067.a79bb499.chunk.js.map": "./static/js/3067.a79bb499.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",
"5370.6d5cfeb1.chunk.css.map": "./static/css/5370.6d5cfeb1.chunk.css.map",
"5370.bcc67c67.chunk.js.map": "./static/js/5370.bcc67c67.chunk.js.map",
"701.3916b3b0.chunk.js.map": "./static/js/701.3916b3b0.chunk.js.map",
"7821.30d84224.chunk.js.map": "./static/js/7821.30d84224.chunk.js.map",
"284.6d5cfeb1.chunk.css.map": "./static/css/284.6d5cfeb1.chunk.css.map",
"284.2272d607.chunk.js.map": "./static/js/284.2272d607.chunk.js.map",
"8388.85d69c36.chunk.js.map": "./static/js/8388.85d69c36.chunk.js.map",
"9781.6d5cfeb1.chunk.css.map": "./static/css/9781.6d5cfeb1.chunk.css.map",
"9781.5138af65.chunk.js.map": "./static/js/9781.5138af65.chunk.js.map",
"8936.6d5cfeb1.chunk.css.map": "./static/css/8936.6d5cfeb1.chunk.css.map",
"8936.32db27d8.chunk.js.map": "./static/js/8936.32db27d8.chunk.js.map",
"1195.6d5cfeb1.chunk.css.map": "./static/css/1195.6d5cfeb1.chunk.css.map",
"1195.c88c104c.chunk.js.map": "./static/js/1195.c88c104c.chunk.js.map",
"2766.a907ade6.chunk.js.map": "./static/js/2766.a907ade6.chunk.js.map",
"8658.3e576725.chunk.js.map": "./static/js/8658.3e576725.chunk.js.map",
"7614.c26e0388.chunk.js.map": "./static/js/7614.c26e0388.chunk.js.map",
"1690.74411b75.chunk.js.map": "./static/js/1690.74411b75.chunk.js.map",
"6491.cb84de50.chunk.js.map": "./static/js/6491.cb84de50.chunk.js.map",
"4902.ca4d4b9b.chunk.js.map": "./static/js/4902.ca4d4b9b.chunk.js.map",
"1432.0fd16e2a.chunk.js.map": "./static/js/1432.0fd16e2a.chunk.js.map",
"9243.438cd458.chunk.js.map": "./static/js/9243.438cd458.chunk.js.map",
"8360.09237eed.chunk.js.map": "./static/js/8360.09237eed.chunk.js.map",
"6577.0dd0770b.chunk.js.map": "./static/js/6577.0dd0770b.chunk.js.map",
"3875.1b1cdf95.chunk.js.map": "./static/js/3875.1b1cdf95.chunk.js.map",
"3115.ea1636fa.chunk.js.map": "./static/js/3115.ea1636fa.chunk.js.map",
"5708.f77982a5.chunk.js.map": "./static/js/5708.f77982a5.chunk.js.map",
"977.f5285832.chunk.js.map": "./static/js/977.f5285832.chunk.js.map",
"6686.4148281b.chunk.js.map": "./static/js/6686.4148281b.chunk.js.map",
"5656.28a8d11c.chunk.js.map": "./static/js/5656.28a8d11c.chunk.js.map",
"91.e520a97c.chunk.js.map": "./static/js/91.e520a97c.chunk.js.map",
"9666.5da08ac7.chunk.js.map": "./static/js/9666.5da08ac7.chunk.js.map",
"4414.bd064f0a.chunk.js.map": "./static/js/4414.bd064f0a.chunk.js.map",
"8833.bffd8a72.chunk.js.map": "./static/js/8833.bffd8a72.chunk.js.map",
"1516.77785cd8.chunk.js.map": "./static/js/1516.77785cd8.chunk.js.map",
"483.6b4acaca.chunk.js.map": "./static/js/483.6b4acaca.chunk.js.map",
"4114.7f28b8fd.chunk.js.map": "./static/js/4114.7f28b8fd.chunk.js.map",
"6895.ede8e880.chunk.js.map": "./static/js/6895.ede8e880.chunk.js.map",
"5465.8959d405.chunk.js.map": "./static/js/5465.8959d405.chunk.js.map",
"1155.6d5cfeb1.chunk.css.map": "./static/css/1155.6d5cfeb1.chunk.css.map",
"1155.77ab901b.chunk.js.map": "./static/js/1155.77ab901b.chunk.js.map",
"3956.d190ab9d.chunk.js.map": "./static/js/3956.d190ab9d.chunk.js.map",
"9221.9f74a390.chunk.js.map": "./static/js/9221.9f74a390.chunk.js.map",
"8896.b42caa61.chunk.js.map": "./static/js/8896.b42caa61.chunk.js.map",
"9134.c6c3f8d9.chunk.js.map": "./static/js/9134.c6c3f8d9.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.53057d05.chunk.js.map": "./static/js/5661.53057d05.chunk.js.map",
"6493.e56bf22e.chunk.js.map": "./static/js/6493.e56bf22e.chunk.js.map",
"3034.81b1b236.chunk.js.map": "./static/js/3034.81b1b236.chunk.js.map",
"8925.6d5cfeb1.chunk.css.map": "./static/css/8925.6d5cfeb1.chunk.css.map",
"8925.804545ac.chunk.js.map": "./static/js/8925.804545ac.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",
"5998.6de29890.chunk.js.map": "./static/js/5998.6de29890.chunk.js.map",
"119.7142376a.chunk.js.map": "./static/js/119.7142376a.chunk.js.map",
"9918.f2916d91.chunk.js.map": "./static/js/9918.f2916d91.chunk.js.map",
"2733.4eb78cde.chunk.js.map": "./static/js/2733.4eb78cde.chunk.js.map",
"9002.9ee60291.chunk.js.map": "./static/js/9002.9ee60291.chunk.js.map",
"51.3b7ac0bb.chunk.js.map": "./static/js/51.3b7ac0bb.chunk.js.map",
"312.36182e3e.chunk.js.map": "./static/js/312.36182e3e.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.c77024f7.chunk.js.map": "./static/js/4619.c77024f7.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.28c47271.chunk.js.map": "./static/js/8455.28c47271.chunk.js.map",
"7233.6d5cfeb1.chunk.css.map": "./static/css/7233.6d5cfeb1.chunk.css.map",
"7233.27f033e9.chunk.js.map": "./static/js/7233.27f033e9.chunk.js.map",
"1609.f0705551.chunk.js.map": "./static/js/1609.f0705551.chunk.js.map",
"9952.b6aabb99.chunk.js.map": "./static/js/9952.b6aabb99.chunk.js.map",
"402.7e563de3.chunk.js.map": "./static/js/402.7e563de3.chunk.js.map",
"1705.bf628870.chunk.js.map": "./static/js/1705.bf628870.chunk.js.map",
"1581.fe2c6b2c.chunk.js.map": "./static/js/1581.fe2c6b2c.chunk.js.map",
"455.10c22444.chunk.js.map": "./static/js/455.10c22444.chunk.js.map",
"2921.9f05320f.chunk.js.map": "./static/js/2921.9f05320f.chunk.js.map",
"889.954fb6a3.chunk.js.map": "./static/js/889.954fb6a3.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",
"6639.5cc622e2.chunk.js.map": "./static/js/6639.5cc622e2.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",
"5994.630a8a7b.chunk.js.map": "./static/js/5994.630a8a7b.chunk.js.map",
"7391.a8c89f77.chunk.js.map": "./static/js/7391.a8c89f77.chunk.js.map",
"2303.32f1acf1.chunk.js.map": "./static/js/2303.32f1acf1.chunk.js.map",
"3691.8a4fe1f5.chunk.js.map": "./static/js/3691.8a4fe1f5.chunk.js.map",
"6481.13d4264b.chunk.js.map": "./static/js/6481.13d4264b.chunk.js.map",
"1520.af5d5afd.chunk.js.map": "./static/js/1520.af5d5afd.chunk.js.map",
"3682.4537dc89.chunk.js.map": "./static/js/3682.4537dc89.chunk.js.map",
"1918.5ab76596.chunk.js.map": "./static/js/1918.5ab76596.chunk.js.map",
"7847.ac3e4228.chunk.js.map": "./static/js/7847.ac3e4228.chunk.js.map",
"6195.f15db24b.chunk.js.map": "./static/js/6195.f15db24b.chunk.js.map",
"1427.470a9bca.chunk.js.map": "./static/js/1427.470a9bca.chunk.js.map",
"3801.e125737d.chunk.js.map": "./static/js/3801.e125737d.chunk.js.map",
"9414.038100c0.chunk.js.map": "./static/js/9414.038100c0.chunk.js.map",
"8173.8aba7982.chunk.js.map": "./static/js/8173.8aba7982.chunk.js.map",
"5415.dbae49d4.chunk.js.map": "./static/js/5415.dbae49d4.chunk.js.map",
"8265.a7f4cd6e.chunk.js.map": "./static/js/8265.a7f4cd6e.chunk.js.map",
"375.5aee7265.chunk.js.map": "./static/js/375.5aee7265.chunk.js.map",
"5284.4c8d46d3.chunk.js.map": "./static/js/5284.4c8d46d3.chunk.js.map",
"9425.3248dd51.chunk.js.map": "./static/js/9425.3248dd51.chunk.js.map",
"4102.543f88a5.chunk.js.map": "./static/js/4102.543f88a5.chunk.js.map",
"6903.ea5c8ae0.chunk.js.map": "./static/js/6903.ea5c8ae0.chunk.js.map",
"5871.10749c09.chunk.js.map": "./static/js/5871.10749c09.chunk.js.map",
"2960.ff0e1ef0.chunk.js.map": "./static/js/2960.ff0e1ef0.chunk.js.map",
"9135.9f49ec5b.chunk.js.map": "./static/js/9135.9f49ec5b.chunk.js.map",
"357.b43cdd5a.chunk.js.map": "./static/js/357.b43cdd5a.chunk.js.map",
"3141.674df617.chunk.js.map": "./static/js/3141.674df617.chunk.js.map",
"1388.babd16fa.chunk.js.map": "./static/js/1388.babd16fa.chunk.js.map",
"4251.d89d9645.chunk.js.map": "./static/js/4251.d89d9645.chunk.js.map",
"24.604f9040.chunk.js.map": "./static/js/24.604f9040.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",
"7521.66cdcc44.chunk.js.map": "./static/js/7521.66cdcc44.chunk.js.map",
"2422.53d27798.chunk.js.map": "./static/js/2422.53d27798.chunk.js.map",
"9302.9404e216.chunk.js.map": "./static/js/9302.9404e216.chunk.js.map",
"221.45a05e5d.chunk.js.map": "./static/js/221.45a05e5d.chunk.js.map",
"5292.9f745b3f.chunk.js.map": "./static/js/5292.9f745b3f.chunk.js.map",
"2358.4c8b0e1c.chunk.js.map": "./static/js/2358.4c8b0e1c.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",
"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",
"4169.aeebcd8e.chunk.js.map": "./static/js/4169.aeebcd8e.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.7f39beab.css",
"static/js/main.7d87c452.js"
"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.7d87c452.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>
<!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

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 @@
(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[119],{84738:function(e,t,n){"use strict";n.r(t);var i=n(1413),c=n(29439),r=n(72791),a=n(78687),o=n(57689),s=n(35527),u=n(18073),l=n(43896),d=n(19847),f=n(92983),p=n(81207),v=n(56087),h=n(60680),S=n(38442),m=n(45248),I=n(87995),x=n(9859),Z=n(81551),_=n(80184);function b(e){return{id:"simple-tab-".concat(e),"aria-controls":"simple-tabpanel-".concat(e)}}t.default=function(){var e=(0,Z.TL)(),t=(0,o.s0)(),n=(0,o.UO)(),F=(0,a.v9)(x.HQ),A=(0,r.useState)(0),L=(0,c.Z)(A,2),j=L[0],E=L[1],N=(0,r.useState)(!0),C=(0,c.Z)(N,2),T=C[0],D=C[1],U=(0,r.useState)([]),g=(0,c.Z)(U,2),y=g[0],k=g[1],M=(0,r.useState)(!0),P=(0,c.Z)(M,2),O=P[0],R=P[1],G=(0,r.useState)([]),w=(0,c.Z)(G,2),z=w[0],B=w[1],H=n.bucketName||"",K=(0,S.F)(H,[v.Ft.ADMIN_LIST_USER_POLICIES]),V=(0,S.F)(H,[v.Ft.ADMIN_GET_POLICY,v.Ft.ADMIN_LIST_USERS,v.Ft.ADMIN_LIST_GROUPS],!0),Y=(0,S.F)(v.C3,[v.Ft.ADMIN_GET_USER]),Q=(0,S.F)(v.C3,[v.Ft.ADMIN_GET_POLICY,v.Ft.ADMIN_LIST_USERS,v.Ft.ADMIN_LIST_GROUPS]);(0,r.useEffect)((function(){F&&(R(!0),D(!0))}),[F,R,D]);var q=[{type:"view",disableButtonFunction:function(){return!Q},onClick:function(e){t("".concat(v.gA.POLICIES,"/").concat((0,m.LL)(e.name)))}}],J=[{type:"view",disableButtonFunction:function(){return!Y},onClick:function(e){t("".concat(v.gA.USERS,"/").concat((0,m.LL)(e)))}}];return(0,r.useEffect)((function(){O&&(V?p.Z.invoke("GET","/api/v1/bucket-users/".concat(H)).then((function(e){B(e),R(!1)})).catch((function(t){e((0,I.Ih)(t)),R(!1)})):R(!1))}),[O,e,H,V]),(0,r.useEffect)((function(){T&&(K?p.Z.invoke("GET","/api/v1/bucket-policy/".concat(H)).then((function(e){k(e.policies),D(!1)})).catch((function(t){e((0,I.Ih)(t)),D(!1)})):D(!1))}),[T,e,H,K]),(0,_.jsxs)(r.Fragment,{children:[(0,_.jsx)(h.Z,{children:"Access Audit"}),(0,_.jsxs)(u.Z,{value:j,onChange:function(e,t){E(t)},indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",children:[K&&(0,_.jsx)(l.Z,(0,i.Z)({label:"Policies"},b(0))),V&&(0,_.jsx)(l.Z,(0,i.Z)({label:"Users"},b(1)))]}),(0,_.jsxs)(s.Z,{children:[(0,_.jsx)(d.x,{index:0,value:j,children:(0,_.jsx)(S.s,{scopes:[v.Ft.ADMIN_LIST_USER_POLICIES],resource:H,errorProps:{disabled:!0},children:(0,_.jsx)(f.Z,{noBackground:!0,itemActions:q,columns:[{label:"Name",elementKey:"name"}],isLoading:T,records:y,entityName:"Policies",idField:"name"})})}),(0,_.jsx)(d.x,{index:1,value:j,children:(0,_.jsx)(S.s,{scopes:[v.Ft.ADMIN_GET_POLICY,v.Ft.ADMIN_LIST_USERS,v.Ft.ADMIN_LIST_GROUPS],resource:H,matchAll:!0,errorProps:{disabled:!0},children:(0,_.jsx)(f.Z,{noBackground:!0,itemActions:J,columns:[{label:"User",elementKey:"accessKey"}],isLoading:O,records:z,entityName:"Users",idField:"accessKey"})})})]})]})}},60680:function(e,t,n){"use strict";n(72791);var i=n(11135),c=n(25787),r=n(80184);t.Z=(0,c.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var t=e.classes,n=e.children;return(0,r.jsx)("h1",{className:t.root,children:n})}))},19847:function(e,t,n){"use strict";n.d(t,{x:function(){return s}});var i=n(1413),c=n(45987),r=n(72791),a=n(80184),o=["children","value","index"],s=function(e){var t=e.children,n=e.value,s=e.index,u=(0,c.Z)(e,o);return(0,a.jsx)("div",(0,i.Z)((0,i.Z)({role:"tabpanel",hidden:n!==s,id:"simple-tabpanel-".concat(s),"aria-labelledby":"simple-tab-".concat(s),style:{marginTop:"5px"}},u),{},{children:n===s&&(0,a.jsx)(r.Fragment,{children:t})}))}},26759:function(e,t,n){"use strict";var i=n(64836);t.Z=void 0;var c=i(n(45649)),r=n(80184),a=(0,c.default)((0,r.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=a},70366:function(e,t,n){"use strict";var i=n(64836);t.Z=void 0;var c=i(n(45649)),r=n(80184),a=(0,c.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=a},97911:function(e,t,n){"use strict";var i=n(64836);t.Z=void 0;var c=i(n(45649)),r=n(80184),a=(0,c.default)((0,r.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=a},26769:function(e,t,n){var i=n(39066),c=n(93629),r=n(43141);e.exports=function(e){return"string"==typeof e||!c(e)&&r(e)&&"[object String]"==i(e)}}}]);
//# sourceMappingURL=119.7142376a.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

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

@@ -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

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),o=t(72791),s=t(9505),a=t(64554),i=t(56087),c=t(38442),u=t(26181),r=t.n(u),d=t(81918),v=t(29823),f=t(42419),h=t(75578),p=t(29945),x=t(87995),T=t(81551),Z=t(80184),_=(0,h.Z)(o.lazy((function(){return Promise.all([t.e(5994),t.e(7391),t.e(6639)]).then(t.bind(t,40247))}))),j=(0,h.Z)(o.lazy((function(){return t.e(2763).then(t.bind(t,22763))})));n.default=function(e){var n=e.bucketName,t=(0,T.TL)(),u=(0,o.useState)(null),h=(0,l.Z)(u,2),m=h[0],S=h[1],b=(0,o.useState)(!1),C=(0,l.Z)(b,2),k=C[0],G=C[1],g=(0,o.useState)([]),A=(0,l.Z)(g,2),N=A[0],y=A[1],I=(0,o.useState)(["",""]),U=(0,l.Z)(I,2),E=U[0],F=U[1],P=(0,o.useState)(!1),z=(0,l.Z)(P,2),O=z[0],w=z[1],B=(0,s.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,x.Ih)(e))})),K=(0,l.Z)(B,2),D=K[0],M=K[1],H=function(){M("GET","/api/v1/buckets/".concat(n))};return(0,o.useEffect)((function(){H()}),[n]),(0,Z.jsxs)(a.Z,{children:[D?(0,Z.jsx)(p.aNw,{style:{width:16,height:16}}):null,(0,Z.jsx)(c.s,{scopes:[i.Ft.S3_GET_BUCKET_TAGGING,i.Ft.S3_GET_ACTIONS],resource:n,children:(0,Z.jsxs)(a.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,Z.jsx)(a.Z,{children:N&&N.map((function(e,t){var l=r()(m,"".concat(e),"");return""!==l?(0,Z.jsx)(c.s,{scopes:[i.Ft.S3_PUT_BUCKET_TAGGING,i.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)(v.Z,{}),onDelete:function(){!function(e,n){F([e,n]),w(!0)}(e,l)}})},"chip-".concat(t)):null}))}),(0,Z.jsx)(c.s,{scopes:[i.Ft.S3_PUT_BUCKET_TAGGING,i.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)}})})]})}),k&&(0,Z.jsx)(_,{modalOpen:k,currentTags:m,bucketName:n,onCloseAndUpdate:function(e){G(!1),e&&H()}}),O&&(0,Z.jsx)(j,{deleteOpen:O,currentTags:m,bucketName:n,onCloseAndUpdate:function(e){w(!1),e&&H()},selectedTag:E})]})}},42419:function(e,n,t){var l=t(64836);n.Z=void 0;var o=l(t(45649)),s=t(80184),a=(0,o.default)((0,s.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");n.Z=a},29823:function(e,n,t){var l=t(64836);n.Z=void 0;var o=l(t(45649)),s=t(80184),a=(0,o.default)((0,s.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");n.Z=a}}]);
//# sourceMappingURL=1705.bf628870.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

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