-
Notifications
You must be signed in to change notification settings - Fork 13
Add Transit IPs column to instance NIC table #2437
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
I passed the Vercel preview link to Angela for review, and she said the new column and updated form look good. |
Looks great! Hm, what do you think about collapsing it under an |
I'm inclined to not tuck it into a collapsible |
I think we might have to do some client-side validation of the IPs to get a decent experience around malformed transit IPs. The alternative would be to catch the server's validation error and turn it into something more usable, but I think client-side validation preventing the whole error in the first place would be both easier and more maintainable. This is what I get pointing local dev at dogfood: 2024-09-19-bad-transit-ip-validation.mp4We do have a Lines 57 to 67 in 1625d02
We're already using the impressive and robust-seeming Line 11 in 1625d02
...but we're not yet using it anywhere in the app code. I wonder if we could replace our IPv4 and IPv6 regexes with calls to this library, as well as using it to validate IP networks. console/app/forms/ip-pool-range-add.tsx Lines 57 to 58 in 1625d02
|
As discussed in chat, I'm working on some IP network validation utilities. I think we should merge this without validation and add it as a followup. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! We will follow up with IP address and network validation.
oxidecomputer/console@5561f28...073471c * [073471c4](oxidecomputer/console@073471c4) mock api: disks are created straight into detached state * [612ec90c](oxidecomputer/console@612ec90c) oxidecomputer/console#2485 * [614f1bb5](oxidecomputer/console@614f1bb5) oxidecomputer/console#2466 * [df2dc14c](oxidecomputer/console@df2dc14c) bump vite related deps for a weird vuln * [a030b9e0](oxidecomputer/console@a030b9e0) oxidecomputer/console#2464 * [dec48497](oxidecomputer/console@dec48497) oxidecomputer/console#2461 * [e46216aa](oxidecomputer/console@e46216aa) oxidecomputer/console#2482 * [0d897efe](oxidecomputer/console@0d897efe) oxidecomputer/console#2479 * [f88790db](oxidecomputer/console@f88790db) oxidecomputer/console#2478 * [d634c8f0](oxidecomputer/console@d634c8f0) oxidecomputer/console#2477 * [eeaa14c3](oxidecomputer/console@eeaa14c3) oxidecomputer/console#2475 * [5ece6e18](oxidecomputer/console@5ece6e18) oxidecomputer/console#2467 * [4b699e01](oxidecomputer/console@4b699e01) oxidecomputer/console#2448 * [9c9dc149](oxidecomputer/console@9c9dc149) oxidecomputer/console#2465 * [1aa0fc9b](oxidecomputer/console@1aa0fc9b) oxidecomputer/console#2463 * [57db4054](oxidecomputer/console@57db4054) oxidecomputer/console#2462 * [da7fe328](oxidecomputer/console@da7fe328) oxidecomputer/console#2460 * [e0d52efd](oxidecomputer/console@e0d52efd) oxidecomputer/console#2437 * [1625d02a](oxidecomputer/console@1625d02a) oxidecomputer/console#2458 * [fd82458e](oxidecomputer/console@fd82458e) oxidecomputer/console#2457 * [7daaa337](oxidecomputer/console@7daaa337) oxidecomputer/console#2453
oxidecomputer/console@5561f28...073471c * [073471c4](oxidecomputer/console@073471c4) mock api: disks are created straight into detached state * [612ec90c](oxidecomputer/console@612ec90c) oxidecomputer/console#2485 * [614f1bb5](oxidecomputer/console@614f1bb5) oxidecomputer/console#2466 * [df2dc14c](oxidecomputer/console@df2dc14c) bump vite related deps for a weird vuln * [a030b9e0](oxidecomputer/console@a030b9e0) oxidecomputer/console#2464 * [dec48497](oxidecomputer/console@dec48497) oxidecomputer/console#2461 * [e46216aa](oxidecomputer/console@e46216aa) oxidecomputer/console#2482 * [0d897efe](oxidecomputer/console@0d897efe) oxidecomputer/console#2479 * [f88790db](oxidecomputer/console@f88790db) oxidecomputer/console#2478 * [d634c8f0](oxidecomputer/console@d634c8f0) oxidecomputer/console#2477 * [eeaa14c3](oxidecomputer/console@eeaa14c3) oxidecomputer/console#2475 * [5ece6e18](oxidecomputer/console@5ece6e18) oxidecomputer/console#2467 * [4b699e01](oxidecomputer/console@4b699e01) oxidecomputer/console#2448 * [9c9dc149](oxidecomputer/console@9c9dc149) oxidecomputer/console#2465 * [1aa0fc9b](oxidecomputer/console@1aa0fc9b) oxidecomputer/console#2463 * [57db4054](oxidecomputer/console@57db4054) oxidecomputer/console#2462 * [da7fe328](oxidecomputer/console@da7fe328) oxidecomputer/console#2460 * [e0d52efd](oxidecomputer/console@e0d52efd) oxidecomputer/console#2437 * [1625d02a](oxidecomputer/console@1625d02a) oxidecomputer/console#2458 * [fd82458e](oxidecomputer/console@fd82458e) oxidecomputer/console#2457 * [7daaa337](oxidecomputer/console@7daaa337) oxidecomputer/console#2453
This adds a column for Transit IPs to the Instance NIC table …

… and an update to the NIC edit form:

It is worth noting that it is currently the case with the API that
transitIps
can be added to an existingInstanceNetworkingInterface
— https://github.com/oxidecomputer/console/blob/main/app/api/__generated__/Api.ts#L1902-L1918 — but not passed in when creating a new one — https://github.com/oxidecomputer/console/blob/main/app/api/__generated__/Api.ts#L1801-L1813. We might change this in a future PR once we get clarity about the intent of that feature, but I want to keep this PR scoped to the existing API.Closes #2381