Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
4da657e
fix: [M3-10527] - Maintenance banner showing redundant links (#12763)
jaalah-akamai Sep 4, 2025
a77c344
change: [UIE-9146] IAM - Improve visual support for AssignedEntities …
abailly-akamai Sep 5, 2025
75e59a1
new: [STORIF-82] Volume tag editing feature added to the volume detai…
dchyrva-akamai Sep 5, 2025
a9e02fb
upcoming: [DPS-34460] - Include streams and destinations in search ba…
kagora-akamai Sep 5, 2025
3f471d2
fix: [UIE-8819] IAM - Improve & consolidate username & email validati…
abailly-akamai Sep 5, 2025
bafb2bc
fix: [M3-10583] - Volume information not populating in Linode Configu…
bnussman-akamai Sep 5, 2025
adca23e
tests [M3-9610]: VM host maintenance banner in linode landing and det…
dmcintyr-akamai Sep 5, 2025
0083720
fix: [M3-10571] - Search Bar extra unnecessary encoding (#12808)
bnussman-akamai Sep 5, 2025
849551a
fix:[M3-10335] - useIsPageScrollable hook is not working correctly fo…
bill-akamai Sep 5, 2025
fe793ca
feat: [UIE-9125] - IAM RBAC: VPC Landing page permissions check (#12…
mpolotsk-akamai Sep 8, 2025
e6bc7a1
fix: [M3-10533] - Fix misleading "Receive a transfer" tooltip when us…
coliu-akamai Sep 8, 2025
a3a554b
upcoming: [M3-10575] - VPC Create page feedback (#12807)
hana-akamai Sep 8, 2025
b7d1b29
tech-story: [M3-10596] - Update inquirer package to 12.9.4 (#12829)
bnussman-akamai Sep 8, 2025
6123894
fix: [DI-26792] - Alerting UI inconsistencies (#12803)
santoshp210-akamai Sep 9, 2025
e6f6d3f
new: [STORIF-81] Added ability to edit volume label. (#12820)
dchyrva-akamai Sep 9, 2025
a0a2fa6
feat: [UIE-9166] - IAM RBAC: add a delay to Linodes menu (#12835)
aaleksee-akamai Sep 9, 2025
c8e8337
test: [M3-10505] - Fix issue in Object Storage bucket clean up result…
cliu-akamai Sep 9, 2025
ff14235
upcoming: [M3-9981] – Add support for VPC IPv6 in the Assign/Unassign…
dwiley-akamai Sep 9, 2025
ac94a3a
Merge branch 'master' into develop
cpathipa Sep 10, 2025
c686656
change: [M3-10586] - Remove update strategy from node pool summary it…
mjac0bs Sep 10, 2025
c18c328
change: [M3-9951] - Expose the "CY_TEST_RESOURCE_PREFIX" environment …
jdamore-linode Sep 10, 2025
28ec548
test: [M3-10405 & M3-10406] - LKE Standard and Enterprise Cluster Cre…
jdamore-linode Sep 10, 2025
8893a11
change: [M3-10534] - Error in Sentry: window.crypto.randomUUID is not…
bill-akamai Sep 10, 2025
5dd3738
upcoming: [M3-10510] - Add unsaved changes modal for ACLP (beta) aler…
pmakode-akamai Sep 11, 2025
d872a17
upcoming: [DPS-34192] - Fetch clusters list and adjust ui to newest d…
kagora-akamai Sep 11, 2025
1829679
Added - [UIE-9151]: Support table grouping for the new NVIDIA Blackwe…
abailly-akamai Sep 11, 2025
807cdc1
remove: [M3-10560] - Legacy date pickers cleanup (#12784)
jaalah-akamai Sep 11, 2025
f7cad20
chore(deps-dev): Bump vite from 6.3.4 to 6.3.6 (#12850)
dependabot[bot] Sep 11, 2025
ed24726
upcoming: [DI-22916] - Added group by drawer component (#12843)
nikhagra-akamai Sep 11, 2025
7a1c537
Merge branch 'master' into develop
cpathipa Sep 11, 2025
ee42197
new: [STORIF-83] Action links added to the volume page. (#12822)
dchyrva-akamai Sep 12, 2025
4e670d9
change: [UIE-9060] - UIE RBAC for Images (Limited Availability) (#12782)
abailly-akamai Sep 12, 2025
537e075
feat: [UIE-9127] - IAM RBAC: VPC Create permissions check (#12863)
mpolotsk-akamai Sep 12, 2025
edb112b
upcoming: [M3-10389] - Feature flag `New` Chip and `Beta` Chip for Li…
bnussman-akamai Sep 12, 2025
3a70bce
fix: [M3-10600] - `LinkButton` styles (#12832)
bnussman-akamai Sep 12, 2025
ef51eec
test: [DBAAS1-1268] Cypress tests for Premium Plans and Horizontal Re…
stayal712 Sep 12, 2025
f08dd5d
upcoming: [M3-10528, M3-10595] - Improve Cloud Manager UX for BYO and…
mjac0bs Sep 12, 2025
d2a4eb3
fix: [M3-10434, M3-10611, M3-10483] - Improve LKE create flow: 0 node…
mjac0bs Sep 12, 2025
2d9e18e
change: [UIE-9163] - IAM - Improve role selection UX in assign change…
abailly-akamai Sep 15, 2025
47421cb
change: [M3-10615] - Update pricing copy in the Image Replicas Drawer…
bnussman-akamai Sep 15, 2025
5c8f94a
chore(deps): Bump axios from 1.8.3 to 1.12.0 (#12877)
dependabot[bot] Sep 15, 2025
be36904
fix: [DI-27269] - Updated tooltip per second unit in widget graphs (#…
nikhagra-akamai Sep 15, 2025
c3c12c2
change: [UIE-8889] - DBaaS - Database Backups time selector to handle…
smans-akamai Sep 15, 2025
97fa8a2
M3-10512 Cypress test flake in events-fetching (#12875)
cliu-akamai Sep 15, 2025
f41127e
upcoming: [DI-26794] - Scope support for Cloud Firewall dimension fil…
santoshp210-akamai Sep 16, 2025
9f6233f
feat: [UIE-9144] - IAM RBAC: perm check nodebalancer settings tab (#1…
aaleksee-akamai Sep 16, 2025
816076c
feat: [UIE-9143, UIE-9145] - IAM RBAC: perm check nodebalancer config…
aaleksee-akamai Sep 16, 2025
8929a56
upcoming: [DI-27104] - Added GlobalFilter and WidgetFilter group by r…
nikhagra-akamai Sep 16, 2025
44bfec1
upcoming: [DPS-33210] Handle creation and edit for stream and destina…
mduda-akamai Sep 16, 2025
3ce0bff
test: [M3-10628] - Fix Cypress test failures after LKE-E Post LA flag…
mjac0bs Sep 16, 2025
ca3b30d
test: [DI-27193] - Add & update tests for alert creation/edit scope c…
agorthi-akamai Sep 16, 2025
71cb9a6
feat: [UIE-8875] - IAM RBAC permissions for GoTo menu (#12882)
abailly-akamai Sep 17, 2025
79c974c
upcoming: [DPS-34722] Rename DataStream to Delivery (#12852)
mduda-akamai Sep 17, 2025
dd41397
fix: [UIE-9192, UIE-9193] - DBaaS - Create and Manage Networking vali…
smans-akamai Sep 17, 2025
7ce5a12
upcoming: [M3-9113] - Add Interface History table (#12321)
coliu-akamai Sep 17, 2025
6b63dec
Cloud version 1.151.0, API v4 version 0.149.0, Validation version 0.7…
DevDW Sep 17, 2025
75f1830
Merge pull request #12890 from linode/release-v1.151.0
dwiley-akamai Sep 18, 2025
5106424
upcoming: [M3-10254] - Support VPC IPv6 in Linode Details > Network t…
hana-akamai Sep 22, 2025
c406455
upcoming: [M3-10597] – Add VPC IPv6 support in Linode Create flow (#1…
dwiley-akamai Sep 23, 2025
efce498
Changelog/package.json updates
hana-akamai Sep 23, 2025
8f58cc4
Use isDualStackEnabled check instead of only flags.vpcIpv6 in several…
DevDW Sep 23, 2025
239ff0b
Merge branch 'vpc-ipv6-remaining' of github.com:linode/manager into v…
DevDW Sep 23, 2025
61c59fb
Merge pull request #12900 from linode/vpc-ipv6-remaining
dwiley-akamai Sep 23, 2025
0076fcd
Passing unit tests: VPCSubnetsTable, SubnetLinodeRow, and LinodeEntit…
DevDW Sep 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,13 @@ x-e2e-env:
CY_TEST_TAGS: ${CY_TEST_TAGS}
CY_TEST_DISABLE_RETRIES: ${CY_TEST_DISABLE_RETRIES}
CY_TEST_RESET_PREFERENCES: ${CY_TEST_RESET_PREFERENCES}
CY_TEST_RESOURCE_PREFIX: ${CY_TEST_RESOURCE_PREFIX}

# Cypress environment variables for alternative parallelization.
CY_TEST_SPLIT_RUN: ${CY_TEST_SPLIT_RUN}
CY_TEST_SPLIT_RUN_TOTAL: ${CY_TEST_SPLIT_RUN_TOTAL}
CY_TEST_SPLIT_RUN_INDEX: ${CY_TEST_SPLIT_RUN_INDEX}
CY_TEST_SPLIT_RUN_WEIGHTS: ${CY_TEST_SPLIT_RUN_WEIGHTS}

# Cypress performance.
CY_TEST_ACCOUNT_CACHE_DIR: ${CY_TEST_ACCOUNT_CACHE_DIR}
Expand All @@ -51,6 +53,7 @@ x-e2e-env:
CY_TEST_JUNIT_REPORT: ${CY_TEST_JUNIT_REPORT}
CY_TEST_HTML_REPORT: ${CY_TEST_HTML_REPORT}
CY_TEST_USER_REPORT: ${CY_TEST_USER_REPORT}
CY_TEST_GENWEIGHTS: ${CY_TEST_GENWEIGHTS}

# Cloud Manager build environment.
HOME: /home/node
Expand Down
23 changes: 23 additions & 0 deletions packages/api-v4/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
## [2025-09-23] - v0.149.0

### Added:

- Images IAM RBAC types ([#12782](https://github.com/linode/manager/pull/12782))
- LKE-E Phase 2 account capabilities (Kubernetes Enterprise BYO VPC, Kubernetes Enterprise Dual Stack) ([#12826](https://github.com/linode/manager/pull/12826))
- VPC Dual Stack capability for regions ([#12826](https://github.com/linode/manager/pull/12826))
- ACLP: `group_by` property in Dashboard interface ([#12843](https://github.com/linode/manager/pull/12843))

### Changed:

- Update `UpdateVolumeRequest` to reflect optional `label` ([#12800](https://github.com/linode/manager/pull/12800))
- Update `DiskDevice` and `VolumeDevice` to more closely align with the API's behavior ([#12809](https://github.com/linode/manager/pull/12809))
- GET and PUT /account to /v4beta endpoint ([#12826](https://github.com/linode/manager/pull/12826))

### Upcoming Features:

- Update LinodeInterfaceHistory type as per API type changes ([#12321](https://github.com/linode/manager/pull/12321))
- Add audit_logs_enabled property to KubernetesCluster's ControlPlaneOptions interface ([#12696](https://github.com/linode/manager/pull/12696))
- Make `address` an optional property on the IPv6SLAAC object ([#12778](https://github.com/linode/manager/pull/12778))
- POST v4beta/monitor/streams/destinations/verify API endpoint for Destinations ([#12823](https://github.com/linode/manager/pull/12823))
- Rename DataStream to Delivery ([#12852](https://github.com/linode/manager/pull/12852))

## [2025-09-09] - v0.148.0

### Added:
Expand Down
6 changes: 3 additions & 3 deletions packages/api-v4/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@linode/api-v4",
"version": "0.148.0",
"version": "0.149.0",
"homepage": "https://github.com/linode/manager/tree/develop/packages/api-v4",
"bugs": {
"url": "https://github.com/linode/manager/issues"
Expand Down Expand Up @@ -41,7 +41,7 @@
"unpkg": "./lib/index.global.js",
"dependencies": {
"@linode/validation": "workspace:*",
"axios": "~1.8.3",
"axios": "~1.12.0",
"ipaddr.js": "^2.0.0",
"yup": "^1.4.0"
},
Expand Down Expand Up @@ -70,4 +70,4 @@
"tsc -p tsconfig.json --noEmit true --emitDeclarationOnly false"
]
}
}
}
4 changes: 2 additions & 2 deletions packages/api-v4/src/account/account.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import type {
*
*/
export const getAccountInfo = () => {
return Request<Account>(setURL(`${API_ROOT}/account`), setMethod('GET'));
return Request<Account>(setURL(`${BETA_API_ROOT}/account`), setMethod('GET'));
};

/**
Expand All @@ -57,7 +57,7 @@ export const getNetworkUtilization = () =>
*/
export const updateAccountInfo = (data: Partial<Account>) =>
Request<Account>(
setURL(`${API_ROOT}/account`),
setURL(`${BETA_API_ROOT}/account`),
setMethod('PUT'),
setData(data, updateAccountSchema),
);
Expand Down
2 changes: 2 additions & 0 deletions packages/api-v4/src/account/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ export const accountCapabilities = [
'Disk Encryption',
'Kubernetes',
'Kubernetes Enterprise',
'Kubernetes Enterprise BYO VPC',
'Kubernetes Enterprise Dual Stack',
'Linodes',
'Linode Interfaces',
'LKE HA Control Planes',
Expand Down
1 change: 1 addition & 0 deletions packages/api-v4/src/cloudpulse/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ type AlertNotificationPagerDuty = 'pagerduty';
type AlertNotificationWebHook = 'webhook';
export interface Dashboard {
created: string;
group_by?: string[];
id: number;
label: string;
service_type: CloudPulseServiceType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,15 @@ export const deleteDestination = (destinationId: number) =>
),
setMethod('DELETE'),
);

/**
* Verifies if a provided Destination is valid.
*
* @param data { object } Data for type, label, etc.
*/
export const verifyDestination = (data: CreateDestinationPayload) =>
Request<Destination>(
setData(data, destinationSchema),
setURL(`${BETA_API_ROOT}/monitor/streams/destinations/verify`),
setMethod('POST'),
);
2 changes: 1 addition & 1 deletion packages/api-v4/src/iam/iam.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ export const getUserAccountPermissions = (username: string) =>
export const getUserEntityPermissions = (
username: string,
entityType: AccessType,
entityId: number,
entityId: number | string,
) =>
Request<PermissionType[]>(
setURL(
Expand Down
47 changes: 46 additions & 1 deletion packages/api-v4/src/iam/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,12 @@ export type AccountAdmin =
| 'view_user_preferences'
| AccountBillingAdmin
| AccountFirewallAdmin
| AccountImageAdmin
| AccountLinodeAdmin
| AccountNodeBalancerAdmin
| AccountOauthClientAdmin
| AccountVolumeAdmin;
| AccountVolumeAdmin
| AccountVPCAdmin;

/** Permissions associated with the "account_billing_admin" role. */
export type AccountBillingAdmin =
Expand Down Expand Up @@ -137,6 +139,12 @@ export type AccountFirewallAdmin = AccountFirewallCreator | FirewallAdmin;
/** Permissions associated with the "account_firewall_creator" role. */
export type AccountFirewallCreator = 'create_firewall';

/** Permissions associated with the "account_vpc_admin" role. */
export type AccountVPCAdmin = AccountVPCCreator | VPCAdmin;

/** Permissions associated with the "account_vpc_creator" role. */
export type AccountVPCCreator = 'create_vpc';

/** Permissions associated with the "account_linode_admin" role. */
export type AccountLinodeAdmin = AccountLinodeCreator | LinodeAdmin;

Expand All @@ -157,6 +165,15 @@ export type AccountVolumeAdmin = AccountVolumeCreator | VolumeAdmin;
/** Permissions associated with the "account_volume_creator" role. */
export type AccountVolumeCreator = 'create_volume';

/** Permissions associated with the "account_image_admin" role. */
export type AccountImageAdmin = AccountImageCreator | ImageAdmin;

/** Permissions associated with the "account_image_creator" role. */
export type AccountImageCreator =
| 'create_image'
| 'list_images'
| 'upload_image';

/** Permissions associated with the "account_maintenance_viewer" role. */
export type AccountMaintenanceViewer = 'list_maintenances';

Expand Down Expand Up @@ -248,6 +265,22 @@ export type FirewallViewer =
| 'view_firewall_device'
| 'view_firewall_rule_version';

/** Permissions associated with the "vpc_admin" role. */
export type VPCAdmin = 'delete_vpc' | 'delete_vpc_subnet' | VPCContributor;

/** Permissions associated with the "vpc_contributor role. */
export type VPCContributor =
| 'create_vpc_subnet'
| 'update_vpc'
| 'update_vpc_subnet'
| VPCViewer;

/** Permissions associated with the "vpc_viewer" role. */
export type VPCViewer =
| 'list_vpc_ip_addresses'
| 'view_vpc'
| 'view_vpc_subnet';

/** Permissions associated with the "linode_admin" role. */
export type LinodeAdmin =
| 'cancel_linode_backups'
Expand Down Expand Up @@ -349,6 +382,18 @@ export type VolumeContributor =
/** Permissions associated with the "volume_viewer" role. */
export type VolumeViewer = 'view_volume';

export type ImageAdmin =
| 'delete_image'
| 'replicate_image'
| ImageContributor
| ImageViewer;

/** Permissions associated with the "image_contributor" role. */
export type ImageContributor = 'update_image' | ImageViewer;

/** Permissions associated with the "image_viewer" role. */
export type ImageViewer = 'view_image';

/** Union of all permissions */
export type PermissionType = AccountAdmin;

Expand Down
2 changes: 1 addition & 1 deletion packages/api-v4/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export * from './cloudpulse';

export * from './databases';

export * from './datastream';
export * from './delivery';

export * from './domains';

Expand Down
4 changes: 4 additions & 0 deletions packages/api-v4/src/kubernetes/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,10 @@ export interface ControlPlaneACLOptions {

export interface ControlPlaneOptions {
acl?: ControlPlaneACLOptions;
/**
* Upcoming Feature, Beta - Delivery logs
*/
audit_logs_enabled?: boolean;
high_availability?: boolean;
}

Expand Down
35 changes: 28 additions & 7 deletions packages/api-v4/src/linodes/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ export interface ConfigInterfaceIPv4 {
}

export interface IPv6SLAAC {
address: string;
address?: string;
range: string;
}

Expand Down Expand Up @@ -342,16 +342,35 @@ export interface PublicInterfaceData {
}

// Other Linode Interface types
export type LinodeInterfaceStatus = 'active' | 'deleted' | 'inactive';

export interface LinodeInterfaceHistory {
/**
* When this version was created.
*
* @example 2025-09-16T15:01:32
*/
created: string;
event_id: number;
interface_data: string; // will come in as JSON string object that we'll need to parse
/**
* The JSON body returned in response to a successful PUT, POST, or DELETE operation on the interface.
*/
interface_data: LinodeInterface;
/**
* The unique ID for this history version.
*/
interface_history_id: number;
/**
* The network interface defined in the version.
*/
interface_id: number;
/**
* The Linode the interface_id belongs to.
*/
linode_id: number;
status: LinodeInterfaceStatus;
/**
* The network interface's version.
*
* The first version from a POST is 1. The version number is incremented when the network interface configuration is changed.
*/
version: number;
}

Expand Down Expand Up @@ -382,10 +401,12 @@ export interface UpgradeInterfaceData {
// ----------------------------------------------------------

export interface DiskDevice {
disk_id: null | number;
disk_id: number;
volume_id: null;
}
export interface VolumeDevice {
volume_id: null | number;
disk_id: null;
volume_id: number;
}

export type ConfigDevice = DiskDevice | null | VolumeDevice;
Expand Down
1 change: 1 addition & 0 deletions packages/api-v4/src/regions/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export type Capabilities =
| 'Premium Plans'
| 'StackScripts'
| 'Vlans'
| 'VPC Dual Stack'
| 'VPCs';

export interface MonitoringCapabilities {
Expand Down
2 changes: 1 addition & 1 deletion packages/api-v4/src/volumes/volumes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ export const resizeVolume = (volumeId: number, data: ResizeVolumePayload) =>
);

export interface UpdateVolumeRequest {
label: string;
label?: string;
tags?: string[];
}

Expand Down
Loading
Loading