Skip to content
Draft
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
c7d1ce7
Add one-step PMM client installer script and UI integration
theTibi Apr 14, 2026
20d0717
Refactor access control and actions API files
theTibi Apr 14, 2026
690c7de
Refactor createNodeInstallToken function in installToken.ts
theTibi Apr 15, 2026
53b918d
Update PMM client installation script and UI components
theTibi Apr 16, 2026
3f3124b
Refactor OS detection in install-pmm-client.sh
theTibi Apr 16, 2026
a77c25a
Enhance Install Client Page and Command Generation
theTibi Apr 16, 2026
c7c3f15
Add PMM agent runtime configuration and startup logic
theTibi Apr 29, 2026
3abcf8b
Enhance Install Token Management and UI Experience
theTibi Apr 29, 2026
7be45bd
Enhance hostname detection in install-pmm-client.sh
theTibi Apr 29, 2026
d435861
Enhance Node Install Token Management and Testing
theTibi Apr 29, 2026
242bb80
Update PMM Client Installation Documentation and Token Management
theTibi Apr 29, 2026
18a233e
Enhance PMM Client Installation Script and UI for Prompt Mode
theTibi May 4, 2026
4a8af16
Update PMM Client Installation Documentation and UI for Credentials M…
theTibi May 4, 2026
1cd8fc7
feat: add 'Preview' badge on navigation
mattiasimonato May 6, 2026
cd0f425
chore: regenerate the code
ademidoff May 6, 2026
83397cf
refactor: remove CreateNodeInstallTokenRequest and CreateNodeInstallT…
theTibi May 12, 2026
cedefd6
Merge branch 'v3' into one_step_install
theTibi May 13, 2026
2d5a83b
PMM-14993 Optimize post-build.yml
ademidoff May 14, 2026
b866025
PMM-14993 Restore a generated file
ademidoff May 14, 2026
e66aa83
Merge branch 'v3' into one_step_install
mattiasimonato May 14, 2026
4408ba3
PMM-14993 Restore client.go
ademidoff May 14, 2026
0c90ca8
Merge branch 'one_step_install' of ssh://github.com/percona/pmm into …
ademidoff May 14, 2026
ace5dff
PMM-14993 Leave a comment for the static folder
ademidoff May 14, 2026
5ee0ae6
PMM-14993 Consistent use of single square brackets
ademidoff May 14, 2026
0432a70
PMM-14993 Fix permissions on the script
ademidoff May 15, 2026
36374c6
Merge branch 'v3' into one_step_install
ademidoff May 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions api-tests/management/nodes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -445,3 +445,64 @@ func TestNodeRegister(t *testing.T) {
require.Nil(t, registerOK)
})
}

func TestCreateNodeInstallToken(t *testing.T) {
t.Parallel()

t.Run("ok mysql with default ttl", func(t *testing.T) {
t.Parallel()
params := mservice.CreateNodeInstallTokenParams{
Context: pmmapitests.Context,
Body: mservice.CreateNodeInstallTokenBody{
Technology: "mysql",
},
}
ok, err := client.Default.ManagementService.CreateNodeInstallToken(&params)
require.NoError(t, err)
require.NotNil(t, ok)
require.NotNil(t, ok.Payload)
assert.NotEmpty(t, ok.Payload.Token)
assert.NotZero(t, ok.Payload.ServiceAccountID)
assert.NotNil(t, ok.Payload.ExpiresAt)
})

t.Run("invalid technology returns 400", func(t *testing.T) {
t.Parallel()
params := mservice.CreateNodeInstallTokenParams{
Context: pmmapitests.Context,
Body: mservice.CreateNodeInstallTokenBody{
Technology: "oracle",
},
}
ok, err := client.Default.ManagementService.CreateNodeInstallToken(&params)
pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, `unsupported technology "oracle"`)
require.Nil(t, ok)
})

t.Run("empty technology returns 400", func(t *testing.T) {
t.Parallel()
params := mservice.CreateNodeInstallTokenParams{
Context: pmmapitests.Context,
Body: mservice.CreateNodeInstallTokenBody{},
}
ok, err := client.Default.ManagementService.CreateNodeInstallToken(&params)
pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, `unsupported technology`)
require.Nil(t, ok)
})

t.Run("ttl above the cap is silently clamped, request still succeeds", func(t *testing.T) {
t.Parallel()
params := mservice.CreateNodeInstallTokenParams{
Context: pmmapitests.Context,
Body: mservice.CreateNodeInstallTokenBody{
Technology: "postgresql",
TTLSeconds: 24 * 60 * 60, // 24h — way above the 15-min hard cap.
},
}
ok, err := client.Default.ManagementService.CreateNodeInstallToken(&params)
require.NoError(t, err)
require.NotNil(t, ok)
require.NotNil(t, ok.Payload)
assert.NotEmpty(t, ok.Payload.Token)
})
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading