Skip to content

Added handling for non UTF-8 valid string#712

Merged
kyasbal merged 2 commits into
GoogleCloudPlatform:epic/file-schema-v6from
kyasbal:push-kmskrsomxqwp
Jun 1, 2026
Merged

Added handling for non UTF-8 valid string#712
kyasbal merged 2 commits into
GoogleCloudPlatform:epic/file-schema-v6from
kyasbal:push-kmskrsomxqwp

Conversation

@kyasbal

@kyasbal kyasbal commented Jun 1, 2026

Copy link
Copy Markdown
Member

ProtocolBuffer can't store non UTF-8 string and it can result in a panic.
Adding a logic to replace these strings into \uFFFD(�).

@kyasbal kyasbal added bug Something isn't working backend:core labels Jun 1, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the InternString function in pkg/model/khifile/v6/intern.go to sanitize input strings using strings.ToValidUTF8 before interning. The review feedback points out that calling strings.ToValidUTF8 unconditionally on every invocation creates a performance bottleneck on a hot path. It is recommended to check the cache first with the raw string to bypass the validation scan for already-interned strings.

Comment thread pkg/model/khifile/v6/intern.go
@kyasbal
kyasbal force-pushed the push-kmskrsomxqwp branch from e8a88a2 to 5719154 Compare June 1, 2026 02:02
@kyasbal
kyasbal marked this pull request as ready for review June 1, 2026 02:02
@kyasbal kyasbal added this to the KHI file format v6 milestone Jun 1, 2026
@kyasbal
kyasbal merged commit 349467c into GoogleCloudPlatform:epic/file-schema-v6 Jun 1, 2026
10 checks passed
@kyasbal
kyasbal deleted the push-kmskrsomxqwp branch June 1, 2026 21:24
pull Bot pushed a commit to TheTechOddBug/khi that referenced this pull request Jun 19, 2026
* feat(proto): add proto definitions and build setup for file schema v6 migration (GoogleCloudPlatform#618)

* feat(proto): add proto definitions and build setup for file schema v7 migration

- Add Protobuf definitions for KHI file schema v7 (split into shared.proto, style.proto, timeline.proto, etc.) to migrate from the previous JSON-based file format.

- Set up Buf configuration (buf.yaml, buf.gen.yaml) to generate Go and TypeScript code.

- Add `proto-gen` target to `scripts/make/codegen.mk` using `npx @bufbuild/buf` to support the new build process.

- Generate Go code in `pkg/generated/khifile/` and TypeScript code in `web/src/app/generated/`.

* fixed typos on proto fields

* Specified proto rule and build target

* Rebuild the generated files from the updated proto

* Added linguist-generated for ignoreing generated files by proto

* fix reviewed points and lint error

* fix version number

* Skip proto breaking change check until it's merged

* Fixed shared type names

* fix typos on comments

* feat: update InternedValue proto to have int64 value (GoogleCloudPlatform#623)

* Adding KHI file schema v6 namespaced ID generator (GoogleCloudPlatform#621)

* feat: update InternedValue proto to have int64 value

* Adding KHI file schema v6 namespaced ID generator

* Adding generated files I forgot to push (GoogleCloudPlatform#626)

* feat: update InternedValue proto to have int64 value

* Adding KHI file schema v6 namespaced ID generator

* Adding generated files I forgot to push

* Rolling back GoogleCloudPlatform#626 (GoogleCloudPlatform#627)

* feat: update InternedValue proto to have int64 value

* Adding KHI file schema v6 namespaced ID generator

* Adding generated files I forgot to push

* Fix the lint thing on the generated codes

* feat(web): add v6 parser foundation (errors and interfaces) (GoogleCloudPlatform#628)

* Adding interning utility for file schema version v6 (GoogleCloudPlatform#622)

* feat: update InternedValue proto to have int64 value

* Adding KHI file schema v6 namespaced ID generator

* Adding generated files I forgot to push

* Fix the lint thing on the generated codes

* Adding interning utility used in khi file format v6

* feat(khifile): implement v6 chunk container writer and reader (GoogleCloudPlatform#624)

* Adding serializer/deserializer for InternedStruct (GoogleCloudPlatform#631)

* Add LogAccumulator storing all logs before serializing them into the (GoogleCloudPlatform#633)

khifile

* Add TimelinePath utilities and IDNamespace used for timeline types (GoogleCloudPlatform#632)

* feat(web): add v6 parser binary reader and parser (GoogleCloudPlatform#630)

* feat(web): add v6 parser binary reader and streamer

* address review comments

* Added serializer for timeline registry to flush contents as proto (GoogleCloudPlatform#634)

* Added interned pool types and struct decoder (GoogleCloudPlatform#640)

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#648)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* feat: Adding TimelineStyleRegistry (GoogleCloudPlatform#639)

* Added style related domain stores (GoogleCloudPlatform#658)

* Adding metadata accumulator (GoogleCloudPlatform#646)

* Change input of style registration not to depend on proto (GoogleCloudPlatform#656)

* Adding KHI file format spec and serializer/deserializer spec (GoogleCloudPlatform#650)

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#666)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* improve ts coding rule (GoogleCloudPlatform#667)

* Merge main branch into epic/file-schema-v6 (GoogleCloudPlatform#670)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

* fixed the flaky backend test due to race condition (GoogleCloudPlatform#665)

* improved sticky header to show resource layer (GoogleCloudPlatform#663)

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Removed InternedStuctDTO (GoogleCloudPlatform#664)

This type is duplication of the pb.InternedStruct.
It's internal type of the domain store but its a shared proto type which
is expected not to change by file version update.

* add v6 khi file builder (GoogleCloudPlatform#652)

* Add listing methods in style-store (GoogleCloudPlatform#668)

* Added log related domain stores (GoogleCloudPlatform#641)

* Updated the frontend-codegen to generate icon list from registered styles (GoogleCloudPlatform#672)

* Adding color helper functions and better validation on style (GoogleCloudPlatform#673)

registration

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#683)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

* fixed the flaky backend test due to race condition (GoogleCloudPlatform#665)

* improved sticky header to show resource layer (GoogleCloudPlatform#663)

* Removed redundant v from the version string (GoogleCloudPlatform#671)

* bugfix: automatic log scroll is not matching to the actual element (GoogleCloudPlatform#675)

* bugfix: ignore changing selected timeline when user clicked a log from log list (GoogleCloudPlatform#674)

* bugfix: automatic scroll to the beginning time of log query when user selected a timeline without point to a log (GoogleCloudPlatform#676)

* bugfix: scaling around right edge of query duration may be clipped to jump to other timing (GoogleCloudPlatform#677)

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Define log type and severity timeline style variables (GoogleCloudPlatform#685)

* Add some style fields in TimelineType (GoogleCloudPlatform#684)

* Add core timeline domain models and timeline store (GoogleCloudPlatform#682)

* Adding the InspectionDataBuilder to build the domain layer (GoogleCloudPlatform#643)

* updated tests for the updated style.proto

* Adding the InspectionDataBuilder to build the domain layer

* fix failed CI due to wrong Makefile dependency (GoogleCloudPlatform#694)

* updated tests for the updated style.proto

* fix failed CI due to wrong Makefile dependency

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#696)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

* fixed the flaky backend test due to race condition (GoogleCloudPlatform#665)

* improved sticky header to show resource layer (GoogleCloudPlatform#663)

* Removed redundant v from the version string (GoogleCloudPlatform#671)

* bugfix: automatic log scroll is not matching to the actual element (GoogleCloudPlatform#675)

* bugfix: ignore changing selected timeline when user clicked a log from log list (GoogleCloudPlatform#674)

* bugfix: automatic scroll to the beginning time of log query when user selected a timeline without point to a log (GoogleCloudPlatform#676)

* bugfix: scaling around right edge of query duration may be clipped to jump to other timing (GoogleCloudPlatform#677)

* Updated CODEOWNER file (GoogleCloudPlatform#678)

* Updated the release.yml for GitHub (GoogleCloudPlatform#679)

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* enforce @typescript-eslint/array-type ESlint rule (GoogleCloudPlatform#695)

* enforce @typescript-eslint/array-type ESlint rule

* Enable prettier with configuration files having suffix .mjs

* Add lookup methods to Timeline and their unit tests (GoogleCloudPlatform#686)

* Add lookup methods to Timeline and their unit tests

* fixed the reviewed points

* Defined TimelineTypes from the previously defined enum.ParentRelationshipTypes (GoogleCloudPlatform#688)

* Replace the serializer task to use the new file format serializer (GoogleCloudPlatform#693)

* Replace Serializer task with the new file builder and implemented progress reporting feature

* Added issue tracker ID in the TODO comment

* Add the new ChangeSet utility (GoogleCloudPlatform#689)

* Add SetAlias method on TimelineAccumulator

* Add the new ChangeSet utility

* Added issue number on the TODO comment

* Add timeline hierarchy and parent-child relationship getters/iterators (GoogleCloudPlatform#687)

* Make storybook works with BigInt (GoogleCloudPlatform#702)

* Updated Typescript coding rule (GoogleCloudPlatform#713)

* Added handling for non UTF-8 valid string (GoogleCloudPlatform#712)

* Added handling for non UTF-8 valid string

* fixed the commented part in the review and added test for the corner case

* Implemented the missing part of file parser (GoogleCloudPlatform#700)

* Added timeline mapper base task type (GoogleCloudPlatform#703)

* Added util used in log ingestor or timeline mappers

* Added timeline mapper base task type

* Added log ingester base task types (GoogleCloudPlatform#704)

* Added util used in log ingestor or timeline mappers

* Added log ingester base task types

* Added severity utils to parse GCP severity (GoogleCloudPlatform#710)

* Added severity utils to parse GCP severity

* fixed problems pointed by the review

* Add FeatureTaskLabelV2 (GoogleCloudPlatform#711)

* Pure UI components for advanced timeline toolbar (GoogleCloudPlatform#706)

* added timeline-view and its timeline filters (GoogleCloudPlatform#707)

* Adding metadata domain layer (GoogleCloudPlatform#701)

* Adding metadata domain layer

* resolving conflict

* Added SKILL for building tasks on log ingesters or timeline mapper (GoogleCloudPlatform#714)

* Added SKILL for building tasks on log ingesters or timeline mapper

* fixed reviewed points

* Defined TimelineTypes, RevisionStates and related utilities (GoogleCloudPlatform#715)

* Defined TimelineTypes, RevisionStates and related utilities

* fixed reviewed points

* Adding blueprint type for v6 (GoogleCloudPlatform#717)

* Adding blueprint type for v6

* fixed GCA reviewed points

* Adding timeline sorting logic (GoogleCloudPlatform#718)

* Adding timeline sorting logic

* fixed GCA's reviewed points

* Fixed Makefile to generate proto artifacts automatically before building other codes (GoogleCloudPlatform#719)

* Advanced timeline toolbar integrating CEL filtering and timeline-view (GoogleCloudPlatform#716)

* Advanced timeline toolbar integrating CEL filtering and timeline-view

* fixed GCA reviewed point

* Optimized structured data storing in domain store (GoogleCloudPlatform#721)

* Make domain type to hold structured data with protobuf binary

* Cache body object with WeakRef in Log and Revision

* Centralized interned struct body cache

* Adding khi_parser skill to define a new parser (GoogleCloudPlatform#720)

* Migrate CSM access log and TD resource audit log parsers to file format v6 (GoogleCloudPlatform#722)

* Migrate CSM access log and TD resource audit log parsers to file format v6

* Use resource.labels.project_id instead of the resource name

* fixed GCA's review commented part

* Migrate GCE network audit log  parsers to file format v6 (GoogleCloudPlatform#723)

* Migrate GCE network audit log  parsers to file format v6

* fixed GCA's review commented part

* Migrate K8s event log parsers to file format v6 (GoogleCloudPlatform#724)

* Migrate GKE cluster autoscaler log parsers to file format v6 (GoogleCloudPlatform#725)

* Migrate GKE cluster autoscaler log parsers to file format v6

* fix autoscale related tests

* Migrate Composer log parsers to file format v6 (GoogleCloudPlatform#726)

* Migrate Composer log parsers to file format v6

* fixed review commented part by GCA

* Migrate K8s node log parsers to file format v6 (GoogleCloudPlatform#728)

* Migrate K8s node log parsers to file format v6

* fixed GCA's review commented part

* Migrate GKE multicloud audit log parsers to file format v6 (GoogleCloudPlatform#727)

* Migrate K8s controlplane log parsers to file format v6 (GoogleCloudPlatform#729)

* Migrate K8s controlplane log parsers to file format v6

* fix control plane related tests

* fixed GCA's commented part

* Migrate GCE serial port log parsers to file format v6 (GoogleCloudPlatform#730)

* Migrate GCE serial port log parsers to file format v6

* fix serialport related parser tests

* fixed GCA's commented part

* Migrate K8s audit log parsers to file format v6 (GoogleCloudPlatform#731)

* Implemented base task utilities for k8s audit log parser

* Migrate K8s audit log parsers to file format v6

* Migrate GKE audit log parsers to file format v6 (GoogleCloudPlatform#732)

* Migrate Compute API audit log parsers to file format v6 (GoogleCloudPlatform#733)

* Migrate Compute API audit log parsers to file format v6

* fix GCA's commented parts

* Migrate K8s container log parsers to file format v6 (GoogleCloudPlatform#734)

* Migrate K8s container log parsers to file format v6

* fix GCA's commented parts

* Migrate GDC audit log parsers to file format v6 (GoogleCloudPlatform#735)

* Migrate GDC audit log parsers to file format v6

* fixed GCA's commented part

* Migrate OSS event parser to KHI file format v6 (GoogleCloudPlatform#738)

* adding mock inspection data (GoogleCloudPlatform#737)

* adding mock inspection data

* fixed GCA's suggested part

* Adding services needed to migrate timeline components to the new domain type (GoogleCloudPlatform#742)

* Add InspectionDataStore

* Adding selection manager v2

* fix issues pointed by gca and tests

* Replace referenced domain types to the new type in the log related components (GoogleCloudPlatform#743)

* Replace referenced domain types to the new type in the log related components

* fixed review points

* Replace domain types used from the timeline related components (GoogleCloudPlatform#744)

* Replace domain types used from the timeline related components

* [broken]timeline hover overlay

* [broken]timeline-legend component

* [broken]timline-ruler component

* [broken] Migrated timeline-index component

* [Broken]Migrating renderer resources

* Migrating other timeline resources

* fixed storybook build failure

* fixed reviewed points

* extend memory limit for ng lint (GoogleCloudPlatform#745)

* Integrate the new timeline view classes and current toolbar component (GoogleCloudPlatform#746)

* Integrate the timeline filter component

* Updated toolbar

* fix GCA's commented part

* Fixed the separate diff page works with the new domain store (GoogleCloudPlatform#747)

* fix graph data converter

* fixed diff separated page

* fixed compilation error

* fixed GCA's reviewed points

* Remove @type field contained in `request` and `respone` of the protoPayload in audit logs (GoogleCloudPlatform#748)

* Add field filter node

* Remove @type field of request or response in the manifest generator

* fixed GCA's comented part

* Cleaning up unused codes on backend (GoogleCloudPlatform#749)

* Removing old code on backend side

* Remove MainMessage fieldset

* Added sorting configuration on timeline type (GoogleCloudPlatform#750)

* Added sorting configuration on timeline type

* fixed failed unit tests

* Improved CEL based filtering (GoogleCloudPlatform#751)

* Improved CEL based filtering

* fixed failing unit tests

* fixed GCA's reviewed part

* Added standard log filtering components (GoogleCloudPlatform#753)

* Added standard log filtering components

* fixed GCA's commented part

* Unified timeline-advanced-toolbar and timeline-toolbar (GoogleCloudPlatform#754)

* Unified timeline-advanced-toolbar and timeline-toolbar

* defined dedicated error for cancellation

* fixed GCA's reviewed part

* Index severity field with timeline filter (GoogleCloudPlatform#755)

* Index severity field with timeline filter

* fixed GCA's reviewed part

* Added CEL guide and its popup components (GoogleCloudPlatform#756)

* Added CEL guide and its popup components

* fixed GCA's commented part

* Added typeChip foreground property on the TimelineStyle protos (GoogleCloudPlatform#758)

* Implemented functions to copy a domain store data to the other worker with SharedArrayBuffer (GoogleCloudPlatform#757)

* SharedArrayBuffer experiment

* Migrated store data to SharedArrayBuffer for utilizing WebWorkers

* Allowed empty value in the filter builder (GoogleCloudPlatform#761)

* allowed empty value in the filter builder

* fixed GCA's commented part

* Added style override dialog to preview timeline styles easier (GoogleCloudPlatform#762)

* Added style override dialog to preview timeline styles easier

* fixed GCA's commented part

* Migrate log/timeline searching to WebWorker (GoogleCloudPlatform#763)

* Migrate log searching to WebWorker

* fixed GCA's commented part

* Implement search cancellation for log and timeline async queries (GoogleCloudPlatform#764)

* Implemented cancellation

* fixed GCA's commented part

* Restructure timeline paths hierarchically under Projects and Category folders (GoogleCloudPlatform#765)

* adjusting colors and styles

* refactor: reuse common contract methods directly in autoscaler parser

* Optimized memory usage for searching (GoogleCloudPlatform#769)

* Optimized memory usage for searching

* fixed GCA's reviewed part

* bug: fix log scrolling by arrow keys (GoogleCloudPlatform#770)

* bug: fix log scrolling by arrow keys

* fixed GCA's reviewed part

* update descriptions on feature tasks (GoogleCloudPlatform#771)

* update descriptions on feature tasks

* fixed GCA's reviewed part

* Improved search feature on diffs/logs (GoogleCloudPlatform#773)

* Improved search feature on diffs/logs

* Address review comments for PR 773

* bug: fix unintentionally jump to another timeline when 2 or more logs are associated with the same log (GoogleCloudPlatform#772)

* bug: fix unintentionally jump to another timeline when 2 or more logs are associated with the same log

* Addressed review comments for PR 772

* update descriptive messages used on KHI (GoogleCloudPlatform#774)

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#775)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

* fixed the flaky backend test due to race condition (GoogleCloudPlatform#665)

* improved sticky header to show resource layer (GoogleCloudPlatform#663)

* Removed redundant v from the version string (GoogleCloudPlatform#671)

* bugfix: automatic log scroll is not matching to the actual element (GoogleCloudPlatform#675)

* bugfix: ignore changing selected timeline when user clicked a log from log list (GoogleCloudPlatform#674)

* bugfix: automatic scroll to the beginning time of log query when user selected a timeline without point to a log (GoogleCloudPlatform#676)

* bugfix: scaling around right edge of query duration may be clipped to jump to other timing (GoogleCloudPlatform#677)

* Updated CODEOWNER file (GoogleCloudPlatform#678)

* Updated the release.yml for GitHub (GoogleCloudPlatform#679)

* fix: confirm refresh when backend disconnects (GoogleCloudPlatform#692)

* fix: confirm refresh when backend disconnects

Signed-off-by: Haihan Jiang <[email protected]>

* chore: use absolute imports in root tests

Signed-off-by: Haihan Jiang <[email protected]>

* Align unload confirmation with disconnect review

---------

Signed-off-by: Haihan Jiang <[email protected]>

* Handle slog attributes in KHI log formatter (GoogleCloudPlatform#708)

* Handle slog attributes in KHI log formatter

* Optimize KHI log attribute formatting

* Handle KHI log formatter review feedback

* Change default listen host to 127.0.0.1 from localhost (GoogleCloudPlatform#759)

* Improve retry logic to consider temporal failure due to ECP issue (GoogleCloudPlatform#760)

* Improve retry logic to consider temporal failure due to ECP issue

* fixed GCA's reviewed points

---------

Signed-off-by: kyasbal <[email protected]>
Signed-off-by: Haihan Jiang <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Haihan Jiang <[email protected]>

* Update the usability of timeline hover component (GoogleCloudPlatform#777)

* Optimize log lookup and resolve sticky header overlay placement

- Resolve target timeline fallback order (selectedTimeline -> descendants -> all timelines)
- Compensate hover placement offset when hovering directly over the sticky header
- Optimize preceding and succeeding log extraction using bisectLeft
- Standardize timestamps to bigint (nanoseconds) across hover resolution

* Visualize current cursor time with a dedicated separator line

- Propagate cursor time as bigint (nanoseconds) to the hover overlay
- Update lastClickedTime dynamically on mouse movement across empty timeline periods
- Conditionally insert a dedicated cursor separator row (isCursor: true) only when hovering over empty timeline periods
- Render cursor row with flex container and CSS dashed lines flanking centered text
- Enforce dashed lines expansion with flex: 1 1 20px and height: 1px
- Update Storybook stories to include mock cursorTime property

* addressed comments on PR777

* feat: show RevisionState description popup on hover in timeline legend (GoogleCloudPlatform#776)

* feat: show RevisionState description popup on hover in timeline legend

* addressed comments on PR776

* Added diagram view to the golden layout tab (GoogleCloudPlatform#780)

* feat: embed graph view as a GoldenLayout tab

* Remove diagram button from the toolbar

* addressed PR comments on GoogleCloudPlatform#780

* make storybook not freezed by serialization (GoogleCloudPlatform#781)

* make storybook not freezed by serialization

* addressed PR781 review comments

* Make graph draw feature async (GoogleCloudPlatform#782)

* Make graph draw feature async

* addressed PR782 review comments

* removed unused frontend codes (GoogleCloudPlatform#783)

* Improved layout menu buttons (GoogleCloudPlatform#784)

* Merge main into epic/file-schema-v6 (GoogleCloudPlatform#786)

* Removing unused CORS code (GoogleCloudPlatform#619)

* Removing unused CORS code

* Update pkg/core/init/default/defaultextension.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Replaced unsafe innerHTML with textContent (GoogleCloudPlatform#620)

* feat(startup): implement smart component and integrate data loading (GoogleCloudPlatform#599)

* feat(startup): add inspection list components

* feat(startup): implement smart component and integrate data loading GoogleCloudPlatform#558

* Fix name of the function pointed out by the review

* chore: fix make setup error in jj and update dev guide (GoogleCloudPlatform#629)

* chore: fix make setup error in jj and update dev guide

* fix commented issues on review

* fixed minor issues on Makefile (GoogleCloudPlatform#644)

* Merge epic/csm-parser into main (GoogleCloudPlatform#645)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name (GoogleCloudPlatform#635)

* Add fleet PJ form task and query task to gather CSM TD audit logs (GoogleCloudPlatform#636)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for TD resource logs (GoogleCloudPlatform#637)

* Add Inventory/Discovery tasks for parsing the map from NEG name to BS name

* Adding form task to receive the fleet project and query task to gather logs from Cloud Logging

* Add timeline mapper for traffic director resource logs

* 🐛 fix set-input suggestion being wrapped for every lines (GoogleCloudPlatform#638)

* fix set-input suggestion being wrapped for every lines

* Update web/src/app/timeline-toolbar/components/set-input-popup.component.scss

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Signed-off-by: kyasbal <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Fix bugs to register the CSM TD parser tasks (GoogleCloudPlatform#647)

* Fix the same issue of GoogleCloudPlatform#638 (GoogleCloudPlatform#659)

* Adding make clean command (GoogleCloudPlatform#651)

* Addming make clean command

* fixed commented points

* Removing unused old headers on frontend (GoogleCloudPlatform#660)

* removed prefix 'v2' in shader files (GoogleCloudPlatform#661)

* rename commonlogk8sauditv2 to commonlogk8saudit (GoogleCloudPlatform#662)

* fixed the flaky backend test due to race condition (GoogleCloudPlatform#665)

* improved sticky header to show resource layer (GoogleCloudPlatform#663)

* Removed redundant v from the version string (GoogleCloudPlatform#671)

* bugfix: automatic log scroll is not matching to the actual element (GoogleCloudPlatform#675)

* bugfix: ignore changing selected timeline when user clicked a log from log list (GoogleCloudPlatform#674)

* bugfix: automatic scroll to the beginning time of log query when user selected a timeline without point to a log (GoogleCloudPlatform#676)

* bugfix: scaling around right edge of query duration may be clipped to jump to other timing (GoogleCloudPlatform#677)

* Updated CODEOWNER file (GoogleCloudPlatform#678)

* Updated the release.yml for GitHub (GoogleCloudPlatform#679)

* fix: confirm refresh when backend disconnects (GoogleCloudPlatform#692)

* fix: confirm refresh when backend disconnects

Signed-off-by: Haihan Jiang <[email protected]>

* chore: use absolute imports in root tests

Signed-off-by: Haihan Jiang <[email protected]>

* Align unload confirmation with disconnect review

---------

Signed-off-by: Haihan Jiang <[email protected]>

* Handle slog attributes in KHI log formatter (GoogleCloudPlatform#708)

* Handle slog attributes in KHI log formatter

* Optimize KHI log attribute formatting

* Handle KHI log formatter review feedback

* Change default listen host to 127.0.0.1 from localhost (GoogleCloudPlatform#759)

* Improve retry logic to consider temporal failure due to ECP issue (GoogleCloudPlatform#760)

* Improve retry logic to consider temporal failure due to ECP issue

* fixed GCA's reviewed points

* bug: fix CSM's access log query was wrong for GDC clusters (GoogleCloudPlatform#779)

* bug: fix CSM's access log query was wrong for GDC clusters

* addressed comment in GoogleCloudPlatform#779

---------

Signed-off-by: kyasbal <[email protected]>
Signed-off-by: Haihan Jiang <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Haihan Jiang <[email protected]>

---------

Signed-off-by: kyasbal <[email protected]>
Signed-off-by: Haihan Jiang <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Haihan Jiang <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:core bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants