[Fleet Console] Refactor MRT table configurations and decouple field configs

This change looks big, but it's mostly reformatting and moving stuff around.

Demo: https://20345-a7f37a7-zhangti-mrt-base-infrastructure-dot-luci-milo-dev.appspot.com/ui/fleet/p/chromeos/devices?filters=

Testing Instructions:

* Go to each data table that has column configuration (device table, repairs tables, RRI)
* Verify that the table renders correctly and all cells compute expected data without freezes or failures.
* try customizing columns.

Key changes:

* Co-location of Configs: Moved domain-specific field overrides (accessors and custom renderers) out of table layout files and into feature-specific directories (e.g., chromeos_fields.tsx) to keep overlap high and reduce context switching.
* Generator Standardization: Converted the fixed Repairs table columns to use the dynamic generator pattern we use for other dynamic tables.
* Safety & Security: Enforced rel="noopener noreferrer" on external links and wrapped generated proto enum converters in a try-catch trap to protect against runtime crashes.
* Documentation: Captured the decisions and file organization rules in the official mrt-table-architecture.md record.

Bug: b/479452001
Change-Id: Id4ce8c611fa6aeaba6ae1d23c7a04461e053253c
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/7791645
Commit-Queue: Tiffany Zhang <zhangtiff@chromium.org>
Reviewed-by: Phoebe Tang <phoebetang@google.com>
18 files changed
tree: 01ad2e2f04eef47cb8fe79ebe5fa1ff655cd1b5e
  1. analysis/
  2. appengine/
  3. auth/
  4. auth_service/
  5. bisection/
  6. build/
  7. buildbucket/
  8. casviewer/
  9. cipd/
  10. cipkg/
  11. client/
  12. common/
  13. config/
  14. config_service/
  15. crystal_ball/
  16. cv/
  17. deploy/
  18. examples/
  19. gae/
  20. gce/
  21. grpc/
  22. hardcoded/
  23. led/
  24. logdog/
  25. luci_notify/
  26. lucicfg/
  27. lucictx/
  28. luciexe/
  29. mailer/
  30. milo/
  31. mmutex/
  32. provenance/
  33. recipes_py/
  34. resultai/
  35. resultdb/
  36. scheduler/
  37. scripts/
  38. server/
  39. source_index/
  40. standalone/
  41. starlark/
  42. swarming/
  43. teams/
  44. third_party/
  45. tokenserver/
  46. tools/
  47. tree_status/
  48. turboci/
  49. vpython/
  50. web/
  51. .gitallowed
  52. .gitignore
  53. .go-lintable
  54. AUTHORS
  55. codereview.settings
  56. CONTRIBUTING.md
  57. CONTRIBUTORS
  58. GEMINI.md
  59. go.mod
  60. go.sum
  61. LICENSE
  62. lucichecker.py
  63. OWNERS
  64. PRESUBMIT.py
  65. README.md
  66. SECURITY_OWNERS
  67. staticcheck.conf
  68. tools.go
  69. WATCHLISTS
README.md

luci-go: LUCI services and tools in Go

GoReference

Installing

LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:

fetch infra
cd infra/go
eval `./env.py`
cd src/go.chromium.org/luci

It is now possible to directly install tools with go install:

go install go.chromium.org/luci/auth/client/cmd/...@latest
go install go.chromium.org/luci/buildbucket/cmd/...@latest
go install go.chromium.org/luci/cipd/client/cmd/...@latest
go install go.chromium.org/luci/client/cmd/...@latest
go install go.chromium.org/luci/cv/cmd/...@latest
go install go.chromium.org/luci/gce/cmd/...@latest
go install go.chromium.org/luci/grpc/cmd/...@latest
go install go.chromium.org/luci/logdog/client/cmd/...@latest
go install go.chromium.org/luci/luci_notify/cmd/...@latest
go install go.chromium.org/luci/lucicfg/cmd/...@latest
go install go.chromium.org/luci/luciexe/legacy/cmd/...@latest
go install go.chromium.org/luci/mailer/cmd/...@latest
go install go.chromium.org/luci/mmutex/cmd/...@latest
go install go.chromium.org/luci/resultdb/cmd/...@latest
go install go.chromium.org/luci/server/cmd/...@latest
go install go.chromium.org/luci/swarming/cmd/...@latest
go install go.chromium.org/luci/tokenserver/cmd/...@latest
go install go.chromium.org/luci/tools/cmd/...@latest

Contributing

Contributing uses the same flow as Chromium contributions.