Compare commits
61 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c96c95924c | ||
|
|
f02786001c | ||
|
|
542b7192c3 | ||
|
|
b31aa10b52 | ||
|
|
1eba59954d | ||
|
|
b71d9f05c5 | ||
|
|
fc5e94d55f | ||
|
|
3875fb3eaa | ||
|
|
b3d4132fe6 | ||
|
|
21f20bb9ea | ||
|
|
df937467a0 | ||
|
|
d1ae271111 | ||
|
|
e7fb3e0e45 | ||
|
|
b7b0271ec7 | ||
|
|
9935b839b7 | ||
|
|
0e11098c31 | ||
|
|
c55e0a069b | ||
|
|
c3da876b04 | ||
|
|
643a9c6c7c | ||
|
|
0c3a94172d | ||
|
|
527eb16700 | ||
|
|
e3aec3f094 | ||
|
|
eac2734df4 | ||
|
|
a411e7c977 | ||
|
|
28c4abe2d0 | ||
|
|
a9ef6ebf5f | ||
|
|
c12415c12d | ||
|
|
1f481e690b | ||
|
|
58aad859e1 | ||
|
|
b9ebfe09ee | ||
|
|
864cf7af99 | ||
|
|
b76f460979 | ||
|
|
cbd2c4682d | ||
|
|
d49bdf7d49 | ||
|
|
559a7278a0 | ||
|
|
4a172fae97 | ||
|
|
fc4263e2f9 | ||
|
|
c1b9b4c81b | ||
|
|
aa9b73522e | ||
|
|
0904f83627 | ||
|
|
253053cc23 | ||
|
|
08a3ff65c7 | ||
|
|
ee8fac8be8 | ||
|
|
9fa49b40b3 | ||
|
|
de13119e02 | ||
|
|
bf9acd7691 | ||
|
|
a5066fecc8 | ||
|
|
6432681440 | ||
|
|
b3b6df9d82 | ||
|
|
fe7be4ef62 | ||
|
|
b4603547f6 | ||
|
|
b33b9315ea | ||
|
|
6ae03fa028 | ||
|
|
e1bb1e0472 | ||
|
|
411670e4f5 | ||
|
|
1c55932f84 | ||
|
|
5a77054d6b | ||
|
|
84c5fd58f9 | ||
|
|
98979911ee | ||
|
|
c0cf7358c7 | ||
|
|
9053e64dff |
48
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
48
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal 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
166
.github/workflows/cross-compile.yaml
vendored
Normal 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
18
.github/workflows/issues.yaml
vendored
Normal 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 }}
|
||||
309
.github/workflows/jobs.yaml
vendored
309
.github/workflows/jobs.yaml
vendored
@@ -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"
|
||||
|
||||
@@ -23,8 +23,8 @@ linters:
|
||||
- gomodguard
|
||||
- gofmt
|
||||
- unused
|
||||
- staticcheck
|
||||
- unconvert
|
||||
- varcheck
|
||||
- gocritic
|
||||
- gofumpt
|
||||
- durationcheck
|
||||
|
||||
191
.goreleaser.yml
191
.goreleaser.yml
@@ -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
44
CHANGELOG.md
Normal 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
|
||||
@@ -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))
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
67
go.mod
@@ -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
|
||||
)
|
||||
|
||||
@@ -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{}
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/minio/madmin-go/v2"
|
||||
"github.com/minio/madmin-go/v3"
|
||||
)
|
||||
|
||||
// Default keys
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -16,6 +16,9 @@ test-warnings:
|
||||
test-prettier:
|
||||
./check-prettier.sh
|
||||
|
||||
find-deadcode:
|
||||
./check-deadcode.sh
|
||||
|
||||
prettify:
|
||||
yarn prettier --write . --loglevel warn
|
||||
|
||||
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
@@ -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
2
portal-ui/build/static/js/107.a58afd7d.chunk.js
Normal file
2
portal-ui/build/static/js/107.a58afd7d.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/107.a58afd7d.chunk.js.map
Normal file
1
portal-ui/build/static/js/107.a58afd7d.chunk.js.map
Normal file
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
@@ -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
2
portal-ui/build/static/js/1191.6a8f1e3d.chunk.js
Normal file
2
portal-ui/build/static/js/1191.6a8f1e3d.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/1191.6a8f1e3d.chunk.js.map
Normal file
1
portal-ui/build/static/js/1191.6a8f1e3d.chunk.js.map
Normal file
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
@@ -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":""}
|
||||
2
portal-ui/build/static/js/130.d84d2f5e.chunk.js
Normal file
2
portal-ui/build/static/js/130.d84d2f5e.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/130.d84d2f5e.chunk.js.map
Normal file
1
portal-ui/build/static/js/130.d84d2f5e.chunk.js.map
Normal file
File diff suppressed because one or more lines are too long
2
portal-ui/build/static/js/1329.ebb06e52.chunk.js
Normal file
2
portal-ui/build/static/js/1329.ebb06e52.chunk.js
Normal 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
|
||||
1
portal-ui/build/static/js/1329.ebb06e52.chunk.js.map
Normal file
1
portal-ui/build/static/js/1329.ebb06e52.chunk.js.map
Normal file
File diff suppressed because one or more lines are too long
2
portal-ui/build/static/js/134.117c7fbe.chunk.js
Normal file
2
portal-ui/build/static/js/134.117c7fbe.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/134.117c7fbe.chunk.js.map
Normal file
1
portal-ui/build/static/js/134.117c7fbe.chunk.js.map
Normal file
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
2
portal-ui/build/static/js/1432.963da344.chunk.js
Normal file
2
portal-ui/build/static/js/1432.963da344.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/1432.963da344.chunk.js.map
Normal file
1
portal-ui/build/static/js/1432.963da344.chunk.js.map
Normal file
File diff suppressed because one or more lines are too long
2
portal-ui/build/static/js/1450.4439b103.chunk.js
Normal file
2
portal-ui/build/static/js/1450.4439b103.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/1450.4439b103.chunk.js.map
Normal file
1
portal-ui/build/static/js/1450.4439b103.chunk.js.map
Normal file
File diff suppressed because one or more lines are too long
2
portal-ui/build/static/js/1516.216550a5.chunk.js
Normal file
2
portal-ui/build/static/js/1516.216550a5.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/1516.216550a5.chunk.js.map
Normal file
1
portal-ui/build/static/js/1516.216550a5.chunk.js.map
Normal file
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
2
portal-ui/build/static/js/1581.ec29a0a8.chunk.js
Normal file
2
portal-ui/build/static/js/1581.ec29a0a8.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/1581.ec29a0a8.chunk.js.map
Normal file
1
portal-ui/build/static/js/1581.ec29a0a8.chunk.js.map
Normal file
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
2
portal-ui/build/static/js/1690.5ad5531b.chunk.js
Normal file
2
portal-ui/build/static/js/1690.5ad5531b.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/1690.5ad5531b.chunk.js.map
Normal file
1
portal-ui/build/static/js/1690.5ad5531b.chunk.js.map
Normal file
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
2
portal-ui/build/static/js/1705.0632aaa2.chunk.js
Normal file
2
portal-ui/build/static/js/1705.0632aaa2.chunk.js
Normal 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
|
||||
1
portal-ui/build/static/js/1705.0632aaa2.chunk.js.map
Normal file
1
portal-ui/build/static/js/1705.0632aaa2.chunk.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -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
2
portal-ui/build/static/js/1829.11d4b426.chunk.js
Normal file
2
portal-ui/build/static/js/1829.11d4b426.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/1829.11d4b426.chunk.js.map
Normal file
1
portal-ui/build/static/js/1829.11d4b426.chunk.js.map
Normal file
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
2
portal-ui/build/static/js/1892.e7ffbb89.chunk.js
Normal file
2
portal-ui/build/static/js/1892.e7ffbb89.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
portal-ui/build/static/js/1892.e7ffbb89.chunk.js.map
Normal file
1
portal-ui/build/static/js/1892.e7ffbb89.chunk.js.map
Normal file
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
Reference in New Issue
Block a user