Skip to content

Generalize update handlers and add the ReadOnlyRepositoryWithFactory trait#76

Open
s-vitaliy wants to merge 14 commits intomainfrom
add-memory-cache-for-validators
Open

Generalize update handlers and add the ReadOnlyRepositoryWithFactory trait#76
s-vitaliy wants to merge 14 commits intomainfrom
add-memory-cache-for-validators

Conversation

@s-vitaliy
Copy link
Contributor

@s-vitaliy s-vitaliy commented Oct 6, 2025

This PR adds the ability to customize update handlers for K8S objects and adds the ability to create unbound caches for the JWT validators for the external tokens.

Unit tests to be done later in this PR.

Checklist

  • GitHub issue exists for this change.
  • Unit tests added and they pass.
  • Line Coverage is at least 80%.
  • Review requested on latest commit.

@github-actions
Copy link

github-actions bot commented Oct 6, 2025

Coverage after merging add-memory-cache-for-validators into main will be

37.67%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   testing.rs89.74%100%100%88.57%21–24
src/contracts
   dynamic_claims_collection.rs0%100%0%0%11–14, 5–9
   internal_token.rs0%100%0%0%10, 8–9
src/contracts/internal_token/v1
   boxer_claims.rs0%100%0%0%16–20, 23–28, 30
   token.rs0%100%0%0%28–49, 55–63, 65–66, 68–71
src/contracts/internal_token/v1/token
   internal_token_builder.rs0%100%0%0%18–29, 31–34, 36–39, 41–44, 46–49, 51–54, 56–59, 61–64, 66–75, 77–89
src/http
   conversions.rs0%100%0%0%10–12, 14, 4–9
src/http/extractors
   boxer_claims.rs0%100%0%0%10–13, 15–17
src/http/middleware
   logging.rs0%100%0%0%10–17, 8–9
src/services/audit
   audit_facade.rs0%100%0%0%101–103, 115–117, 129–135, 47–66, 90–91, 93, 95–99
   log_audit_service.rs0%100%0%0%13–15, 19–20, 25–27, 33, 35–36, 38–39, 44–45, 49, 51–52, 54–56, 61–62, 66, 68, 73–74, 78, 81–82, 84–85, 90, 92, 96, 98–99
src/services/audit/audit_facade
   to_audit_record.rs0%100%0%0%12–14, 6–8
src/services/audit/events
   authorization_audit_event.rs0%100%0%0%21, 23–24, 26, 30–38, 40–42
   resource_delete_audit_event.rs0%100%0%0%11–17
   resource_modification_audit_event.rs0%100%0%0%12–18, 31–34, 36
   token_validation_event.rs0%100%0%0%12–20, 22–30, 32–39, 49–51, 53, 55
src/services/backends
   memory.rs0%100%0%0%19–23, 25, 36–40, 42–45, 56–60, 81–84, 86–88, 90
src/services/backends/kubernetes
   kubeconfig_loader.rs0%100%0%0%10–12, 14–16, 18–20, 38–44, 46–51, 60–66, 72–76
   kubernetes_resource_manager.rs47.28%100%37.93%49.03%100, 102–107, 109, 111–115, 117, 142–147, 149–152, 154–158, 160–164, 179–181, 183–188, 236–240, 76–78, 80–85, 87–92, 94–99
   logging_update_handler.rs85.71%100%100%84.62%24–25
   repositories.rs57.14%100%40%58.82%148, 155–161, 189, 194, 197, 202, 208, 210–211, 215, 219–222, 74–81, 83–85, 87–90, 93–97
src/services/backends/kubernetes/kubernetes_resource_manager
   object_owner_mark.rs100%100%100%100%
   spin_lock.rs87.80%100%90%87.10%56–58, 60
   status.rs31.25%100%50%28.57%27, 33–36, 38, 42–44, 51–55, 57, 61–65
src/services/backends/kubernetes/kubernetes_resource_manager/object_owner_mark
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/spin_lock
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/status
   not_found_details.rs34.78%100%33.33%35%12–18, 22–26, 29
   owner_conflict_details.rs100%100%100%100%
src/services/backends/kubernetes/repositories
   schema_repository.rs62.86%100%28.57%71.43%51–54
   tests.rs100%100%100%100%
   try_into_object_ref.rs62.50%100%50%64.29%39–43
src/services/backends/kubernetes/repositories/schema_repository
   schema_document.rs93.75%100%85.71%96%
   test_reduced_schema.rs100%100%100%100%
   test_schema.rs100%100%100%100%
   tests.rs100%100%100%100%
src/services/observability
   composed_logger.rs0%100%0%0%10–15, 17–20, 22–25, 27–28, 30–32, 34–37, 41–43, 45–51, 54–56, 60, 62–66
src/services/observability/open_telemetry
   logging.rs0%100%0%0%10–18, 20–23
   metrics.rs0%100%0%0%16–21, 23–25, 27–29
   tracing.rs0%100%0%0%11–12, 14, 16–18, 20–22, 27–34, 46–56
src/services/observability/open_telemetry/metrics
   into_metric_tag.rs0%100%0%0%10, 8–9
   provider.rs0%100%0%0%21–31, 35–37, 41–43, 47–49, 53–55, 59–61, 65–67, 71–73
   token_accepted.rs0%100%0%0%10–18, 22–26, 28, 30–35, 37
   token_attempt.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_forbidden.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_issued.rs0%100%0%0%10–16, 24–25, 27–31, 33, 8–9
   token_lifetime.rs0%100%0%0%10–17, 25–32, 34, 9
   token_rejected.rs0%100%0%0%10–18, 22–26, 28–31, 33–35
   token_unauthorized.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
src/services/observability/open_telemetry/tracing
   tracing_facade.rs0%100%0%0%23–32, 55–58
src/testing
   api_client_context.rs65.63%100%66.67%65.38%17–20, 22–23, 33–35
   api_extensions.rs65.63%100%100%60.71%31–35, 53–58
   spin_lock_kubernetes_resource_manager_context.rs100%100%100%100%
   temp_namespace_context.rs100%100%100%100%

@s-vitaliy s-vitaliy requested a review from Copilot October 7, 2025 14:41
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds the ReadOnlyRepositoryWithFactory trait to enable lazy creation of entities in repositories when they don't exist. The implementation allows repositories to use a factory pattern to create new entities on-demand during read operations.

Key changes:

  • Added ValueFactory and ReadOnlyRepositoryWithFactory traits with factory-based entity creation
  • Refactored resource update handlers into a dedicated module structure with composed handling capabilities
  • Updated method signatures to use references instead of owned values for better performance

Reviewed Changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/services/base/upsert_repository.rs Adds new ValueFactory and ReadOnlyRepositoryWithFactory traits
src/services/backends/memory.rs Implements the new factory-based repository trait for in-memory HashMap storage
src/services/backends/kubernetes/resource_update_handler.rs Creates new module structure for resource update handlers
src/services/backends/kubernetes/resource_update_handler/logging_update_handler.rs Moves and refactors logging handler with reference-based method signature
src/services/backends/kubernetes/resource_update_handler/composed_update_handler.rs Adds new composed handler for chaining multiple update handlers
src/services/backends/kubernetes/repositories.rs Updates repository to support generic update handlers and adds factory trait implementation
src/services/backends/kubernetes/repositories/schema_repository.rs Removes duplicate trait implementation
src/services/backends/kubernetes/repositories/schema_repository/tests.rs Updates test to use new generic repository structure
Comments suppressed due to low confidence (1)

src/services/backends/kubernetes/resource_update_handler/logging_update_handler.rs:1

  • Similar issue here - event is a reference to a Result, so the match should use event.as_ref() or destructure the reference properly with match event.
use crate::services::backends::kubernetes::resource_update_handler::ResourceUpdateHandler;

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment on lines +32 to +33
/// Represents a repository for policies
pub trait ReadOnlyRepositoryWithFactory<Key, Entity>: Send + Sync {
Copy link

Copilot AI Oct 7, 2025

Choose a reason for hiding this comment

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

The documentation comment mentions 'policies' but this is a generic trait that can work with any entity type. Update the comment to reflect its generic nature.

Copilot uses AI. Check for mistakes.
Comment on lines +36 to +37
/// Retrieves a policy by id
async fn get(
Copy link

Copilot AI Oct 7, 2025

Choose a reason for hiding this comment

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

The documentation comment mentions 'policy by id' but this method works with generic Key and Entity types. Update the comment to be more generic.

Copilot uses AI. Check for mistakes.
@github-actions
Copy link

github-actions bot commented Oct 7, 2025

Coverage after merging add-memory-cache-for-validators into main will be

37.14%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   testing.rs89.74%100%100%88.57%21–24
src/contracts
   dynamic_claims_collection.rs0%100%0%0%11–14, 5–9
   internal_token.rs0%100%0%0%10, 8–9
src/contracts/internal_token/v1
   boxer_claims.rs0%100%0%0%16–20, 23–28, 30
   token.rs0%100%0%0%28–49, 55–63, 65–66, 68–71
src/contracts/internal_token/v1/token
   internal_token_builder.rs0%100%0%0%18–29, 31–34, 36–39, 41–44, 46–49, 51–54, 56–59, 61–64, 66–75, 77–89
src/http
   conversions.rs0%100%0%0%10–12, 14, 4–9
src/http/extractors
   boxer_claims.rs0%100%0%0%10–13, 15–17
src/http/middleware
   logging.rs0%100%0%0%10–17, 8–9
src/services/audit
   audit_facade.rs0%100%0%0%101–103, 115–117, 129–135, 47–66, 90–91, 93, 95–99
   log_audit_service.rs0%100%0%0%13–15, 19–20, 25–27, 33, 35–36, 38–39, 44–45, 49, 51–52, 54–56, 61–62, 66, 68, 73–74, 78, 81–82, 84–85, 90, 92, 96, 98–99
src/services/audit/audit_facade
   to_audit_record.rs0%100%0%0%12–14, 6–8
src/services/audit/events
   authorization_audit_event.rs0%100%0%0%21, 23–24, 26, 30–38, 40–42
   resource_delete_audit_event.rs0%100%0%0%11–17
   resource_modification_audit_event.rs0%100%0%0%12–18, 31–34, 36
   token_validation_event.rs0%100%0%0%12–20, 22–30, 32–39, 49–51, 53, 55
src/services/backends
   memory.rs0%100%0%0%20–24, 26, 37–41, 43–46, 57–61, 83–86, 88–90, 92
src/services/backends/kubernetes
   kubeconfig_loader.rs0%100%0%0%10–12, 14–16, 18–20, 38–44, 46–51, 60–66, 72–76
   kubernetes_resource_manager.rs47.28%100%37.93%49.03%101–106, 108, 110–114, 116, 141–146, 148–151, 153–157, 159–163, 178–180, 182–187, 235–239, 75–77, 79–84, 86–91, 93–99
   repositories.rs56.64%100%40%58.25%100–104, 157, 164–170, 199, 204, 207, 212, 218, 220–221, 225, 229–232, 80–88, 90–92, 94–97
src/services/backends/kubernetes/kubernetes_resource_manager
   object_owner_mark.rs100%100%100%100%
   spin_lock.rs87.80%100%90%87.10%56–58, 60
   status.rs31.25%100%50%28.57%27, 33–36, 38, 42–44, 51–55, 57, 61–65
src/services/backends/kubernetes/kubernetes_resource_manager/object_owner_mark
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/spin_lock
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/status
   not_found_details.rs34.78%100%33.33%35%12–18, 22–26, 29
   owner_conflict_details.rs100%100%100%100%
src/services/backends/kubernetes/repositories
   schema_repository.rs62.86%100%28.57%71.43%51–54
   tests.rs100%100%100%100%
   try_into_object_ref.rs62.50%100%50%64.29%39–43
src/services/backends/kubernetes/repositories/schema_repository
   schema_document.rs93.75%100%85.71%96%
   test_reduced_schema.rs100%100%100%100%
   test_schema.rs100%100%100%100%
   tests.rs100%100%100%100%
src/services/backends/kubernetes/resource_update_handler
   composed_update_handler.rs0%100%0%0%11–13, 15–18, 26–28, 30
   logging_update_handler.rs66.67%100%100%63.64%19–20, 25, 28
src/services/observability
   composed_logger.rs0%100%0%0%10–15, 17–20, 22–25, 27–28, 30–32, 34–37, 41–43, 45–51, 54–56, 60, 62–66
src/services/observability/open_telemetry
   logging.rs0%100%0%0%10–18, 20–23
   metrics.rs0%100%0%0%16–21, 23–25, 27–29
   tracing.rs0%100%0%0%11–12, 14, 16–18, 20–22, 27–34, 46–56
src/services/observability/open_telemetry/metrics
   into_metric_tag.rs0%100%0%0%10, 8–9
   provider.rs0%100%0%0%21–31, 35–37, 41–43, 47–49, 53–55, 59–61, 65–67, 71–73
   token_accepted.rs0%100%0%0%10–18, 22–26, 28, 30–35, 37
   token_attempt.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_forbidden.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_issued.rs0%100%0%0%10–16, 24–25, 27–31, 33, 8–9
   token_lifetime.rs0%100%0%0%10–17, 25–32, 34, 9
   token_rejected.rs0%100%0%0%10–18, 22–26, 28–31, 33–35
   token_unauthorized.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
src/services/observability/open_telemetry/tracing
   tracing_facade.rs0%100%0%0%23–32, 55–58
src/testing
   api_client_context.rs65.63%100%66.67%65.38%17–20, 22–23, 33–35
   api_extensions.rs65.63%100%100%60.71%31–35, 53–58
   spin_lock_kubernetes_resource_manager_context.rs100%100%100%100%
   temp_namespace_context.rs100%100%100%100%

@s-vitaliy s-vitaliy changed the title Add the ReadOnlyRepositoryWithFactory trait Generalize update handlers and add the ReadOnlyRepositoryWithFactory trait Oct 8, 2025
…ng_update_handler.rs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@s-vitaliy s-vitaliy marked this pull request as ready for review October 8, 2025 09:21
@s-vitaliy s-vitaliy requested a review from a team as a code owner October 8, 2025 09:21
@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Coverage after merging add-memory-cache-for-validators into main will be

37.14%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   testing.rs89.74%100%100%88.57%21–24
src/contracts
   dynamic_claims_collection.rs0%100%0%0%11–14, 5–9
   internal_token.rs0%100%0%0%10, 8–9
src/contracts/internal_token/v1
   boxer_claims.rs0%100%0%0%16–20, 23–28, 30
   token.rs0%100%0%0%28–49, 55–63, 65–66, 68–71
src/contracts/internal_token/v1/token
   internal_token_builder.rs0%100%0%0%18–29, 31–34, 36–39, 41–44, 46–49, 51–54, 56–59, 61–64, 66–75, 77–89
src/http
   conversions.rs0%100%0%0%10–12, 14, 4–9
src/http/extractors
   boxer_claims.rs0%100%0%0%10–13, 15–17
src/http/middleware
   logging.rs0%100%0%0%10–17, 8–9
src/services/audit
   audit_facade.rs0%100%0%0%101–103, 115–117, 129–135, 47–66, 90–91, 93, 95–99
   log_audit_service.rs0%100%0%0%13–15, 19–20, 25–27, 33, 35–36, 38–39, 44–45, 49, 51–52, 54–56, 61–62, 66, 68, 73–74, 78, 81–82, 84–85, 90, 92, 96, 98–99
src/services/audit/audit_facade
   to_audit_record.rs0%100%0%0%12–14, 6–8
src/services/audit/events
   authorization_audit_event.rs0%100%0%0%21, 23–24, 26, 30–38, 40–42
   resource_delete_audit_event.rs0%100%0%0%11–17
   resource_modification_audit_event.rs0%100%0%0%12–18, 31–34, 36
   token_validation_event.rs0%100%0%0%12–20, 22–30, 32–39, 49–51, 53, 55
src/services/backends
   memory.rs0%100%0%0%20–24, 26, 37–41, 43–46, 57–61, 83–86, 88–90, 92
src/services/backends/kubernetes
   kubeconfig_loader.rs0%100%0%0%10–12, 14–16, 18–20, 38–44, 46–51, 60–66, 72–76
   kubernetes_resource_manager.rs47.28%100%37.93%49.03%101–106, 108, 110–114, 116, 141–146, 148–151, 153–157, 159–163, 178–180, 182–187, 235–239, 75–77, 79–84, 86–91, 93–99
   repositories.rs56.64%100%40%58.25%100–104, 157, 164–170, 199, 204, 207, 212, 218, 220–221, 225, 229–232, 80–88, 90–92, 94–97
src/services/backends/kubernetes/kubernetes_resource_manager
   object_owner_mark.rs100%100%100%100%
   spin_lock.rs87.80%100%90%87.10%56–58, 60
   status.rs31.25%100%50%28.57%27, 33–36, 38, 42–44, 51–55, 57, 61–65
src/services/backends/kubernetes/kubernetes_resource_manager/object_owner_mark
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/spin_lock
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/status
   not_found_details.rs34.78%100%33.33%35%12–18, 22–26, 29
   owner_conflict_details.rs100%100%100%100%
src/services/backends/kubernetes/repositories
   schema_repository.rs62.86%100%28.57%71.43%51–54
   tests.rs100%100%100%100%
   try_into_object_ref.rs62.50%100%50%64.29%39–43
src/services/backends/kubernetes/repositories/schema_repository
   schema_document.rs93.75%100%85.71%96%
   test_reduced_schema.rs100%100%100%100%
   test_schema.rs100%100%100%100%
   tests.rs100%100%100%100%
src/services/backends/kubernetes/resource_update_handler
   composed_update_handler.rs0%100%0%0%11–13, 15–18, 26–28, 30
   logging_update_handler.rs66.67%100%100%63.64%19–20, 25, 28
src/services/observability
   composed_logger.rs0%100%0%0%10–15, 17–20, 22–25, 27–28, 30–32, 34–37, 41–43, 45–51, 54–56, 60, 62–66
src/services/observability/open_telemetry
   logging.rs0%100%0%0%10–18, 20–23
   metrics.rs0%100%0%0%16–21, 23–25, 27–29
   tracing.rs0%100%0%0%11–12, 14, 16–18, 20–22, 27–34, 46–56
src/services/observability/open_telemetry/metrics
   into_metric_tag.rs0%100%0%0%10, 8–9
   provider.rs0%100%0%0%21–31, 35–37, 41–43, 47–49, 53–55, 59–61, 65–67, 71–73
   token_accepted.rs0%100%0%0%10–18, 22–26, 28, 30–35, 37
   token_attempt.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_forbidden.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_issued.rs0%100%0%0%10–16, 24–25, 27–31, 33, 8–9
   token_lifetime.rs0%100%0%0%10–17, 25–32, 34, 9
   token_rejected.rs0%100%0%0%10–18, 22–26, 28–31, 33–35
   token_unauthorized.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
src/services/observability/open_telemetry/tracing
   tracing_facade.rs0%100%0%0%23–32, 55–58
src/testing
   api_client_context.rs65.63%100%66.67%65.38%17–20, 22–23, 33–35
   api_extensions.rs65.63%100%100%60.71%31–35, 53–58
   spin_lock_kubernetes_resource_manager_context.rs100%100%100%100%
   temp_namespace_context.rs100%100%100%100%

s-vitaliy and others added 3 commits October 8, 2025 11:53
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@s-vitaliy s-vitaliy requested a review from Copilot October 8, 2025 09:53
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Coverage after merging add-memory-cache-for-validators into main will be

37.03%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   testing.rs89.74%100%100%88.57%21–24
src/contracts
   dynamic_claims_collection.rs0%100%0%0%11–14, 5–9
   internal_token.rs0%100%0%0%10, 8–9
src/contracts/internal_token/v1
   boxer_claims.rs0%100%0%0%16–20, 23–28, 30
   token.rs0%100%0%0%28–49, 55–63, 65–66, 68–71
src/contracts/internal_token/v1/token
   internal_token_builder.rs0%100%0%0%18–29, 31–34, 36–39, 41–44, 46–49, 51–54, 56–59, 61–64, 66–75, 77–89
src/http
   conversions.rs0%100%0%0%10–12, 14, 4–9
src/http/extractors
   boxer_claims.rs0%100%0%0%10–13, 15–17
src/http/middleware
   logging.rs0%100%0%0%10–17, 8–9
src/services/audit
   audit_facade.rs0%100%0%0%101–103, 115–117, 129–135, 47–66, 90–91, 93, 95–99
   log_audit_service.rs0%100%0%0%13–15, 19–20, 25–27, 33, 35–36, 38–39, 44–45, 49, 51–52, 54–56, 61–62, 66, 68, 73–74, 78, 81–82, 84–85, 90, 92, 96, 98–99
src/services/audit/audit_facade
   to_audit_record.rs0%100%0%0%12–14, 6–8
src/services/audit/events
   authorization_audit_event.rs0%100%0%0%21, 23–24, 26, 30–38, 40–42
   resource_delete_audit_event.rs0%100%0%0%11–17
   resource_modification_audit_event.rs0%100%0%0%12–18, 31–34, 36
   token_validation_event.rs0%100%0%0%12–20, 22–30, 32–39, 49–51, 53, 55
src/services/backends
   memory.rs0%100%0%0%100, 102, 20–24, 26, 37–41, 43–46, 57–61, 83, 86–89, 92, 94, 96–97, 99
src/services/backends/kubernetes
   kubeconfig_loader.rs0%100%0%0%10–12, 14–16, 18–20, 38–44, 46–51, 60–66, 72–76
   kubernetes_resource_manager.rs47.28%100%37.93%49.03%101–106, 108, 110–114, 116, 141–146, 148–151, 153–157, 159–163, 178–180, 182–187, 235–239, 75–77, 79–84, 86–91, 93–99
   repositories.rs56.64%100%40%58.25%100–104, 157, 164–170, 199, 204, 207, 212, 218, 220–221, 225, 229–232, 80–88, 90–92, 94–97
src/services/backends/kubernetes/kubernetes_resource_manager
   object_owner_mark.rs100%100%100%100%
   spin_lock.rs87.80%100%90%87.10%56–58, 60
   status.rs31.25%100%50%28.57%27, 33–36, 38, 42–44, 51–55, 57, 61–65
src/services/backends/kubernetes/kubernetes_resource_manager/object_owner_mark
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/spin_lock
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/status
   not_found_details.rs34.78%100%33.33%35%12–18, 22–26, 29
   owner_conflict_details.rs100%100%100%100%
src/services/backends/kubernetes/repositories
   schema_repository.rs62.86%100%28.57%71.43%51–54
   tests.rs100%100%100%100%
   try_into_object_ref.rs62.50%100%50%64.29%39–43
src/services/backends/kubernetes/repositories/schema_repository
   schema_document.rs93.75%100%85.71%96%
   test_reduced_schema.rs100%100%100%100%
   test_schema.rs100%100%100%100%
   tests.rs100%100%100%100%
src/services/backends/kubernetes/resource_update_handler
   composed_update_handler.rs0%100%0%0%11–13, 15–18, 26–28, 30
   logging_update_handler.rs66.67%100%100%63.64%19–20, 25, 28
src/services/observability
   composed_logger.rs0%100%0%0%10–15, 17–20, 22–25, 27–28, 30–32, 34–37, 41–43, 45–51, 54–56, 60, 62–66
src/services/observability/open_telemetry
   logging.rs0%100%0%0%10–18, 20–23
   metrics.rs0%100%0%0%16–21, 23–25, 27–29
   tracing.rs0%100%0%0%11–12, 14, 16–18, 20–22, 27–34, 46–56
src/services/observability/open_telemetry/metrics
   into_metric_tag.rs0%100%0%0%10, 8–9
   provider.rs0%100%0%0%21–31, 35–37, 41–43, 47–49, 53–55, 59–61, 65–67, 71–73
   token_accepted.rs0%100%0%0%10–18, 22–26, 28, 30–35, 37
   token_attempt.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_forbidden.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_issued.rs0%100%0%0%10–16, 24–25, 27–31, 33, 8–9
   token_lifetime.rs0%100%0%0%10–17, 25–32, 34, 9
   token_rejected.rs0%100%0%0%10–18, 22–26, 28–31, 33–35
   token_unauthorized.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
src/services/observability/open_telemetry/tracing
   tracing_facade.rs0%100%0%0%23–32, 55–58
src/testing
   api_client_context.rs65.63%100%66.67%65.38%17–20, 22–23, 33–35
   api_extensions.rs65.63%100%100%60.71%31–35, 53–58
   spin_lock_kubernetes_resource_manager_context.rs100%100%100%100%
   temp_namespace_context.rs100%100%100%100%

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Coverage after merging add-memory-cache-for-validators into main will be

37.03%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   testing.rs89.74%100%100%88.57%21–24
src/contracts
   dynamic_claims_collection.rs0%100%0%0%11–14, 5–9
   internal_token.rs0%100%0%0%10, 8–9
src/contracts/internal_token/v1
   boxer_claims.rs0%100%0%0%16–20, 23–28, 30
   token.rs0%100%0%0%28–49, 55–63, 65–66, 68–71
src/contracts/internal_token/v1/token
   internal_token_builder.rs0%100%0%0%18–29, 31–34, 36–39, 41–44, 46–49, 51–54, 56–59, 61–64, 66–75, 77–89
src/http
   conversions.rs0%100%0%0%10–12, 14, 4–9
src/http/extractors
   boxer_claims.rs0%100%0%0%10–13, 15–17
src/http/middleware
   logging.rs0%100%0%0%10–17, 8–9
src/services/audit
   audit_facade.rs0%100%0%0%101–103, 115–117, 129–135, 47–66, 90–91, 93, 95–99
   log_audit_service.rs0%100%0%0%13–15, 19–20, 25–27, 33, 35–36, 38–39, 44–45, 49, 51–52, 54–56, 61–62, 66, 68, 73–74, 78, 81–82, 84–85, 90, 92, 96, 98–99
src/services/audit/audit_facade
   to_audit_record.rs0%100%0%0%12–14, 6–8
src/services/audit/events
   authorization_audit_event.rs0%100%0%0%21, 23–24, 26, 30–38, 40–42
   resource_delete_audit_event.rs0%100%0%0%11–17
   resource_modification_audit_event.rs0%100%0%0%12–18, 31–34, 36
   token_validation_event.rs0%100%0%0%12–20, 22–30, 32–39, 49–51, 53, 55
src/services/backends
   memory.rs0%100%0%0%100, 102, 20–24, 26, 37–41, 43–46, 57–61, 83, 86–89, 92, 94, 96–97, 99
src/services/backends/kubernetes
   kubeconfig_loader.rs0%100%0%0%10–12, 14–16, 18–20, 38–44, 46–51, 60–66, 72–76
   kubernetes_resource_manager.rs47.28%100%37.93%49.03%101–106, 108, 110–114, 116, 141–146, 148–151, 153–157, 159–163, 178–180, 182–187, 235–239, 75–77, 79–84, 86–91, 93–99
   repositories.rs56.64%100%40%58.25%100–104, 157, 164–170, 199, 204, 207, 212, 218, 220–221, 225, 229–232, 80–88, 90–92, 94–97
src/services/backends/kubernetes/kubernetes_resource_manager
   object_owner_mark.rs100%100%100%100%
   spin_lock.rs87.80%100%90%87.10%56–58, 60
   status.rs31.25%100%50%28.57%27, 33–36, 38, 42–44, 51–55, 57, 61–65
src/services/backends/kubernetes/kubernetes_resource_manager/object_owner_mark
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/spin_lock
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/status
   not_found_details.rs34.78%100%33.33%35%12–18, 22–26, 29
   owner_conflict_details.rs100%100%100%100%
src/services/backends/kubernetes/repositories
   schema_repository.rs62.86%100%28.57%71.43%51–54
   tests.rs100%100%100%100%
   try_into_object_ref.rs62.50%100%50%64.29%39–43
src/services/backends/kubernetes/repositories/schema_repository
   schema_document.rs93.75%100%85.71%96%
   test_reduced_schema.rs100%100%100%100%
   test_schema.rs100%100%100%100%
   tests.rs100%100%100%100%
src/services/backends/kubernetes/resource_update_handler
   composed_update_handler.rs0%100%0%0%11–13, 15–18, 26–28, 30
   logging_update_handler.rs66.67%100%100%63.64%19–20, 25, 28
src/services/observability
   composed_logger.rs0%100%0%0%10–15, 17–20, 22–25, 27–28, 30–32, 34–37, 41–43, 45–51, 54–56, 60, 62–66
src/services/observability/open_telemetry
   logging.rs0%100%0%0%10–18, 20–23
   metrics.rs0%100%0%0%16–21, 23–25, 27–29
   tracing.rs0%100%0%0%11–12, 14, 16–18, 20–22, 27–34, 46–56
src/services/observability/open_telemetry/metrics
   into_metric_tag.rs0%100%0%0%10, 8–9
   provider.rs0%100%0%0%21–31, 35–37, 41–43, 47–49, 53–55, 59–61, 65–67, 71–73
   token_accepted.rs0%100%0%0%10–18, 22–26, 28, 30–35, 37
   token_attempt.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_forbidden.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_issued.rs0%100%0%0%10–16, 24–25, 27–31, 33, 8–9
   token_lifetime.rs0%100%0%0%10–17, 25–32, 34, 9
   token_rejected.rs0%100%0%0%10–18, 22–26, 28–31, 33–35
   token_unauthorized.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
src/services/observability/open_telemetry/tracing
   tracing_facade.rs0%100%0%0%23–32, 55–58
src/testing
   api_client_context.rs65.63%100%66.67%65.38%17–20, 22–23, 33–35
   api_extensions.rs65.63%100%100%60.71%31–35, 53–58
   spin_lock_kubernetes_resource_manager_context.rs100%100%100%100%
   temp_namespace_context.rs100%100%100%100%

s-vitaliy and others added 4 commits October 8, 2025 11:55
…sed_update_handler.rs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Coverage after merging add-memory-cache-for-validators into main will be

37.03%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   testing.rs89.74%100%100%88.57%21–24
src/contracts
   dynamic_claims_collection.rs0%100%0%0%11–14, 5–9
   internal_token.rs0%100%0%0%10, 8–9
src/contracts/internal_token/v1
   boxer_claims.rs0%100%0%0%16–20, 23–28, 30
   token.rs0%100%0%0%28–49, 55–63, 65–66, 68–71
src/contracts/internal_token/v1/token
   internal_token_builder.rs0%100%0%0%18–29, 31–34, 36–39, 41–44, 46–49, 51–54, 56–59, 61–64, 66–75, 77–89
src/http
   conversions.rs0%100%0%0%10–12, 14, 4–9
src/http/extractors
   boxer_claims.rs0%100%0%0%10–13, 15–17
src/http/middleware
   logging.rs0%100%0%0%10–17, 8–9
src/services/audit
   audit_facade.rs0%100%0%0%101–103, 115–117, 129–135, 47–66, 90–91, 93, 95–99
   log_audit_service.rs0%100%0%0%13–15, 19–20, 25–27, 33, 35–36, 38–39, 44–45, 49, 51–52, 54–56, 61–62, 66, 68, 73–74, 78, 81–82, 84–85, 90, 92, 96, 98–99
src/services/audit/audit_facade
   to_audit_record.rs0%100%0%0%12–14, 6–8
src/services/audit/events
   authorization_audit_event.rs0%100%0%0%21, 23–24, 26, 30–38, 40–42
   resource_delete_audit_event.rs0%100%0%0%11–17
   resource_modification_audit_event.rs0%100%0%0%12–18, 31–34, 36
   token_validation_event.rs0%100%0%0%12–20, 22–30, 32–39, 49–51, 53, 55
src/services/backends
   memory.rs0%100%0%0%100, 102, 20–24, 26, 37–41, 43–46, 57–61, 83, 86–89, 92, 94, 96–97, 99
src/services/backends/kubernetes
   kubeconfig_loader.rs0%100%0%0%10–12, 14–16, 18–20, 38–44, 46–51, 60–66, 72–76
   kubernetes_resource_manager.rs47.28%100%37.93%49.03%101–106, 108, 110–114, 116, 141–146, 148–151, 153–157, 159–163, 178–180, 182–187, 235–239, 75–77, 79–84, 86–91, 93–99
   repositories.rs56.64%100%40%58.25%100–104, 157, 164–170, 199, 204, 207, 212, 218, 220–221, 225, 229–232, 80–88, 90–92, 94–97
src/services/backends/kubernetes/kubernetes_resource_manager
   object_owner_mark.rs100%100%100%100%
   spin_lock.rs87.80%100%90%87.10%56–58, 60
   status.rs31.25%100%50%28.57%27, 33–36, 38, 42–44, 51–55, 57, 61–65
src/services/backends/kubernetes/kubernetes_resource_manager/object_owner_mark
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/spin_lock
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/status
   not_found_details.rs34.78%100%33.33%35%12–18, 22–26, 29
   owner_conflict_details.rs100%100%100%100%
src/services/backends/kubernetes/repositories
   schema_repository.rs62.86%100%28.57%71.43%51–54
   tests.rs100%100%100%100%
   try_into_object_ref.rs62.50%100%50%64.29%39–43
src/services/backends/kubernetes/repositories/schema_repository
   schema_document.rs93.75%100%85.71%96%
   test_reduced_schema.rs100%100%100%100%
   test_schema.rs100%100%100%100%
   tests.rs100%100%100%100%
src/services/backends/kubernetes/resource_update_handler
   composed_update_handler.rs0%100%0%0%11–13, 15–18, 26–28, 30
   logging_update_handler.rs66.67%100%100%63.64%19–20, 25, 28
src/services/observability
   composed_logger.rs0%100%0%0%10–15, 17–20, 22–25, 27–28, 30–32, 34–37, 41–43, 45–51, 54–56, 60, 62–66
src/services/observability/open_telemetry
   logging.rs0%100%0%0%10–18, 20–23
   metrics.rs0%100%0%0%16–21, 23–25, 27–29
   tracing.rs0%100%0%0%11–12, 14, 16–18, 20–22, 27–34, 46–56
src/services/observability/open_telemetry/metrics
   into_metric_tag.rs0%100%0%0%10, 8–9
   provider.rs0%100%0%0%21–31, 35–37, 41–43, 47–49, 53–55, 59–61, 65–67, 71–73
   token_accepted.rs0%100%0%0%10–18, 22–26, 28, 30–35, 37
   token_attempt.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_forbidden.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_issued.rs0%100%0%0%10–16, 24–25, 27–31, 33, 8–9
   token_lifetime.rs0%100%0%0%10–17, 25–32, 34, 9
   token_rejected.rs0%100%0%0%10–18, 22–26, 28–31, 33–35
   token_unauthorized.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
src/services/observability/open_telemetry/tracing
   tracing_facade.rs0%100%0%0%23–32, 55–58
src/testing
   api_client_context.rs65.63%100%66.67%65.38%17–20, 22–23, 33–35
   api_extensions.rs65.63%100%100%60.71%31–35, 53–58
   spin_lock_kubernetes_resource_manager_context.rs100%100%100%100%
   temp_namespace_context.rs100%100%100%100%

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Coverage after merging add-memory-cache-for-validators into main will be

37.03%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   testing.rs89.74%100%100%88.57%21–24
src/contracts
   dynamic_claims_collection.rs0%100%0%0%11–14, 5–9
   internal_token.rs0%100%0%0%10, 8–9
src/contracts/internal_token/v1
   boxer_claims.rs0%100%0%0%16–20, 23–28, 30
   token.rs0%100%0%0%28–49, 55–63, 65–66, 68–71
src/contracts/internal_token/v1/token
   internal_token_builder.rs0%100%0%0%18–29, 31–34, 36–39, 41–44, 46–49, 51–54, 56–59, 61–64, 66–75, 77–89
src/http
   conversions.rs0%100%0%0%10–12, 14, 4–9
src/http/extractors
   boxer_claims.rs0%100%0%0%10–13, 15–17
src/http/middleware
   logging.rs0%100%0%0%10–17, 8–9
src/services/audit
   audit_facade.rs0%100%0%0%101–103, 115–117, 129–135, 47–66, 90–91, 93, 95–99
   log_audit_service.rs0%100%0%0%13–15, 19–20, 25–27, 33, 35–36, 38–39, 44–45, 49, 51–52, 54–56, 61–62, 66, 68, 73–74, 78, 81–82, 84–85, 90, 92, 96, 98–99
src/services/audit/audit_facade
   to_audit_record.rs0%100%0%0%12–14, 6–8
src/services/audit/events
   authorization_audit_event.rs0%100%0%0%21, 23–24, 26, 30–38, 40–42
   resource_delete_audit_event.rs0%100%0%0%11–17
   resource_modification_audit_event.rs0%100%0%0%12–18, 31–34, 36
   token_validation_event.rs0%100%0%0%12–20, 22–30, 32–39, 49–51, 53, 55
src/services/backends
   memory.rs0%100%0%0%100, 102, 20–24, 26, 37–41, 43–46, 57–61, 83, 86–89, 92, 94, 96–97, 99
src/services/backends/kubernetes
   kubeconfig_loader.rs0%100%0%0%10–12, 14–16, 18–20, 38–44, 46–51, 60–66, 72–76
   kubernetes_resource_manager.rs47.28%100%37.93%49.03%101–106, 108, 110–114, 116, 141–146, 148–151, 153–157, 159–163, 178–180, 182–187, 235–239, 75–77, 79–84, 86–91, 93–99
   repositories.rs56.64%100%40%58.25%100–104, 157, 164–170, 199, 204, 207, 212, 218, 220–221, 225, 229–232, 80–88, 90–92, 94–97
src/services/backends/kubernetes/kubernetes_resource_manager
   object_owner_mark.rs100%100%100%100%
   spin_lock.rs87.80%100%90%87.10%56–58, 60
   status.rs31.25%100%50%28.57%27, 33–36, 38, 42–44, 51–55, 57, 61–65
src/services/backends/kubernetes/kubernetes_resource_manager/object_owner_mark
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/spin_lock
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/status
   not_found_details.rs34.78%100%33.33%35%12–18, 22–26, 29
   owner_conflict_details.rs100%100%100%100%
src/services/backends/kubernetes/repositories
   schema_repository.rs62.86%100%28.57%71.43%51–54
   tests.rs100%100%100%100%
   try_into_object_ref.rs62.50%100%50%64.29%39–43
src/services/backends/kubernetes/repositories/schema_repository
   schema_document.rs93.75%100%85.71%96%
   test_reduced_schema.rs100%100%100%100%
   test_schema.rs100%100%100%100%
   tests.rs100%100%100%100%
src/services/backends/kubernetes/resource_update_handler
   composed_update_handler.rs0%100%0%0%11–13, 15–18, 26–28, 30
   logging_update_handler.rs66.67%100%100%63.64%19–20, 25, 28
src/services/observability
   composed_logger.rs0%100%0%0%10–15, 17–20, 22–25, 27–28, 30–32, 34–37, 41–43, 45–51, 54–56, 60, 62–66
src/services/observability/open_telemetry
   logging.rs0%100%0%0%10–18, 20–23
   metrics.rs0%100%0%0%16–21, 23–25, 27–29
   tracing.rs0%100%0%0%11–12, 14, 16–18, 20–22, 27–34, 46–56
src/services/observability/open_telemetry/metrics
   into_metric_tag.rs0%100%0%0%10, 8–9
   provider.rs0%100%0%0%21–31, 35–37, 41–43, 47–49, 53–55, 59–61, 65–67, 71–73
   token_accepted.rs0%100%0%0%10–18, 22–26, 28, 30–35, 37
   token_attempt.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_forbidden.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_issued.rs0%100%0%0%10–16, 24–25, 27–31, 33, 8–9
   token_lifetime.rs0%100%0%0%10–17, 25–32, 34, 9
   token_rejected.rs0%100%0%0%10–18, 22–26, 28–31, 33–35
   token_unauthorized.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
src/services/observability/open_telemetry/tracing
   tracing_facade.rs0%100%0%0%23–32, 55–58
src/testing
   api_client_context.rs65.63%100%66.67%65.38%17–20, 22–23, 33–35
   api_extensions.rs65.63%100%100%60.71%31–35, 53–58
   spin_lock_kubernetes_resource_manager_context.rs100%100%100%100%
   temp_namespace_context.rs100%100%100%100%

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Coverage after merging add-memory-cache-for-validators into main will be

37.03%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   testing.rs89.74%100%100%88.57%21–24
src/contracts
   dynamic_claims_collection.rs0%100%0%0%11–14, 5–9
   internal_token.rs0%100%0%0%10, 8–9
src/contracts/internal_token/v1
   boxer_claims.rs0%100%0%0%16–20, 23–28, 30
   token.rs0%100%0%0%28–49, 55–63, 65–66, 68–71
src/contracts/internal_token/v1/token
   internal_token_builder.rs0%100%0%0%18–29, 31–34, 36–39, 41–44, 46–49, 51–54, 56–59, 61–64, 66–75, 77–89
src/http
   conversions.rs0%100%0%0%10–12, 14, 4–9
src/http/extractors
   boxer_claims.rs0%100%0%0%10–13, 15–17
src/http/middleware
   logging.rs0%100%0%0%10–17, 8–9
src/services/audit
   audit_facade.rs0%100%0%0%101–103, 115–117, 129–135, 47–66, 90–91, 93, 95–99
   log_audit_service.rs0%100%0%0%13–15, 19–20, 25–27, 33, 35–36, 38–39, 44–45, 49, 51–52, 54–56, 61–62, 66, 68, 73–74, 78, 81–82, 84–85, 90, 92, 96, 98–99
src/services/audit/audit_facade
   to_audit_record.rs0%100%0%0%12–14, 6–8
src/services/audit/events
   authorization_audit_event.rs0%100%0%0%21, 23–24, 26, 30–38, 40–42
   resource_delete_audit_event.rs0%100%0%0%11–17
   resource_modification_audit_event.rs0%100%0%0%12–18, 31–34, 36
   token_validation_event.rs0%100%0%0%12–20, 22–30, 32–39, 49–51, 53, 55
src/services/backends
   memory.rs0%100%0%0%100, 102, 20–24, 26, 37–41, 43–46, 57–61, 83, 86–89, 92, 94, 96–97, 99
src/services/backends/kubernetes
   kubeconfig_loader.rs0%100%0%0%10–12, 14–16, 18–20, 38–44, 46–51, 60–66, 72–76
   kubernetes_resource_manager.rs47.28%100%37.93%49.03%101–106, 108, 110–114, 116, 141–146, 148–151, 153–157, 159–163, 178–180, 182–187, 235–239, 75–77, 79–84, 86–91, 93–99
   repositories.rs56.64%100%40%58.25%100–104, 157, 164–170, 199, 204, 207, 212, 218, 220–221, 225, 229–232, 80–88, 90–92, 94–97
src/services/backends/kubernetes/kubernetes_resource_manager
   object_owner_mark.rs100%100%100%100%
   spin_lock.rs87.80%100%90%87.10%56–58, 60
   status.rs31.25%100%50%28.57%27, 33–36, 38, 42–44, 51–55, 57, 61–65
src/services/backends/kubernetes/kubernetes_resource_manager/object_owner_mark
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/spin_lock
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/status
   not_found_details.rs34.78%100%33.33%35%12–18, 22–26, 29
   owner_conflict_details.rs100%100%100%100%
src/services/backends/kubernetes/repositories
   schema_repository.rs62.86%100%28.57%71.43%51–54
   tests.rs100%100%100%100%
   try_into_object_ref.rs62.50%100%50%64.29%39–43
src/services/backends/kubernetes/repositories/schema_repository
   schema_document.rs93.75%100%85.71%96%
   test_reduced_schema.rs100%100%100%100%
   test_schema.rs100%100%100%100%
   tests.rs100%100%100%100%
src/services/backends/kubernetes/resource_update_handler
   composed_update_handler.rs0%100%0%0%11–13, 15–18, 26–28, 30
   logging_update_handler.rs66.67%100%100%63.64%19–20, 25, 28
src/services/observability
   composed_logger.rs0%100%0%0%10–15, 17–20, 22–25, 27–28, 30–32, 34–37, 41–43, 45–51, 54–56, 60, 62–66
src/services/observability/open_telemetry
   logging.rs0%100%0%0%10–18, 20–23
   metrics.rs0%100%0%0%16–21, 23–25, 27–29
   tracing.rs0%100%0%0%11–12, 14, 16–18, 20–22, 27–34, 46–56
src/services/observability/open_telemetry/metrics
   into_metric_tag.rs0%100%0%0%10, 8–9
   provider.rs0%100%0%0%21–31, 35–37, 41–43, 47–49, 53–55, 59–61, 65–67, 71–73
   token_accepted.rs0%100%0%0%10–18, 22–26, 28, 30–35, 37
   token_attempt.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_forbidden.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_issued.rs0%100%0%0%10–16, 24–25, 27–31, 33, 8–9
   token_lifetime.rs0%100%0%0%10–17, 25–32, 34, 9
   token_rejected.rs0%100%0%0%10–18, 22–26, 28–31, 33–35
   token_unauthorized.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
src/services/observability/open_telemetry/tracing
   tracing_facade.rs0%100%0%0%23–32, 55–58
src/testing
   api_client_context.rs65.63%100%66.67%65.38%17–20, 22–23, 33–35
   api_extensions.rs65.63%100%100%60.71%31–35, 53–58
   spin_lock_kubernetes_resource_manager_context.rs100%100%100%100%
   temp_namespace_context.rs100%100%100%100%

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Coverage after merging add-memory-cache-for-validators into main will be

39.06%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   testing.rs89.74%100%100%88.57%21–24
src/contracts
   dynamic_claims_collection.rs0%100%0%0%11–14, 5–9
   internal_token.rs0%100%0%0%10, 8–9
src/contracts/internal_token/v1
   boxer_claims.rs0%100%0%0%16–20, 23–28, 30
   token.rs0%100%0%0%28–49, 55–63, 65–66, 68–71
src/contracts/internal_token/v1/token
   internal_token_builder.rs0%100%0%0%18–29, 31–34, 36–39, 41–44, 46–49, 51–54, 56–59, 61–64, 66–75, 77–89
src/http
   conversions.rs0%100%0%0%10–12, 14, 4–9
src/http/extractors
   boxer_claims.rs0%100%0%0%10–13, 15–17
src/http/middleware
   logging.rs0%100%0%0%10–17, 8–9
src/services/audit
   audit_facade.rs0%100%0%0%101–103, 115–117, 129–135, 47–66, 90–91, 93, 95–99
   log_audit_service.rs0%100%0%0%13–15, 19–20, 25–27, 33, 35–36, 38–39, 44–45, 49, 51–52, 54–56, 61–62, 66, 68, 73–74, 78, 81–82, 84–85, 90, 92, 96, 98–99
src/services/audit/audit_facade
   to_audit_record.rs0%100%0%0%12–14, 6–8
src/services/audit/events
   authorization_audit_event.rs0%100%0%0%21, 23–24, 26, 30–38, 40–42
   resource_delete_audit_event.rs0%100%0%0%11–17
   resource_modification_audit_event.rs0%100%0%0%12–18, 31–34, 36
   token_validation_event.rs0%100%0%0%12–20, 22–30, 32–39, 49–51, 53, 55
src/services/backends
   memory.rs36.59%100%33.33%37.14%107, 30–34, 36, 47–51, 53–56, 67–71, 98
src/services/backends/kubernetes
   kubeconfig_loader.rs0%100%0%0%10–12, 14–16, 18–20, 38–44, 46–51, 60–66, 72–76
   kubernetes_resource_manager.rs47.28%100%37.93%49.03%101–106, 108, 110–114, 116, 141–146, 148–151, 153–157, 159–163, 178–180, 182–187, 235–239, 75–77, 79–84, 86–91, 93–99
   repositories.rs56.64%100%40%58.25%100–104, 157, 164–170, 199, 204, 207, 212, 218, 220–221, 225, 229–232, 80–88, 90–92, 94–97
src/services/backends/kubernetes/kubernetes_resource_manager
   object_owner_mark.rs100%100%100%100%
   spin_lock.rs87.80%100%90%87.10%56–58, 60
   status.rs31.25%100%50%28.57%27, 33–36, 38, 42–44, 51–55, 57, 61–65
src/services/backends/kubernetes/kubernetes_resource_manager/object_owner_mark
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/spin_lock
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/status
   not_found_details.rs34.78%100%33.33%35%12–18, 22–26, 29
   owner_conflict_details.rs100%100%100%100%
src/services/backends/kubernetes/repositories
   schema_repository.rs62.86%100%28.57%71.43%51–54
   tests.rs100%100%100%100%
   try_into_object_ref.rs62.50%100%50%64.29%39–43
src/services/backends/kubernetes/repositories/schema_repository
   schema_document.rs93.75%100%85.71%96%
   test_reduced_schema.rs100%100%100%100%
   test_schema.rs100%100%100%100%
   tests.rs100%100%100%100%
src/services/backends/kubernetes/resource_update_handler
   composed_update_handler.rs0%100%0%0%11–13, 15–18, 26–28, 30
   logging_update_handler.rs66.67%100%100%63.64%19–20, 25, 28
src/services/backends/memory
   tests.rs100%100%100%100%
src/services/observability
   composed_logger.rs0%100%0%0%10–15, 17–20, 22–25, 27–28, 30–32, 34–37, 41–43, 45–51, 54–56, 60, 62–66
src/services/observability/open_telemetry
   logging.rs0%100%0%0%10–18, 20–23
   metrics.rs0%100%0%0%16–21, 23–25, 27–29
   tracing.rs0%100%0%0%11–12, 14, 16–18, 20–22, 27–34, 46–56
src/services/observability/open_telemetry/metrics
   into_metric_tag.rs0%100%0%0%10, 8–9
   provider.rs0%100%0%0%21–31, 35–37, 41–43, 47–49, 53–55, 59–61, 65–67, 71–73
   token_accepted.rs0%100%0%0%10–18, 22–26, 28, 30–35, 37
   token_attempt.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_forbidden.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_issued.rs0%100%0%0%10–16, 24–25, 27–31, 33, 8–9
   token_lifetime.rs0%100%0%0%10–17, 25–32, 34, 9
   token_rejected.rs0%100%0%0%10–18, 22–26, 28–31, 33–35
   token_unauthorized.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
src/services/observability/open_telemetry/tracing
   tracing_facade.rs0%100%0%0%23–32, 55–58
src/testing
   api_client_context.rs65.63%100%66.67%65.38%17–20, 22–23, 33–35
   api_extensions.rs65.63%100%100%60.71%31–35, 53–58
   spin_lock_kubernetes_resource_manager_context.rs100%100%100%100%
   temp_namespace_context.rs100%100%100%100%

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Coverage after merging add-memory-cache-for-validators into main will be

42.28%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src
   testing.rs89.74%100%100%88.57%21–24
src/contracts
   dynamic_claims_collection.rs0%100%0%0%11–14, 5–9
   internal_token.rs0%100%0%0%10, 8–9
src/contracts/internal_token/v1
   boxer_claims.rs0%100%0%0%16–20, 23–28, 30
   token.rs0%100%0%0%28–49, 55–63, 65–66, 68–71
src/contracts/internal_token/v1/token
   internal_token_builder.rs0%100%0%0%18–29, 31–34, 36–39, 41–44, 46–49, 51–54, 56–59, 61–64, 66–75, 77–89
src/http
   conversions.rs0%100%0%0%10–12, 14, 4–9
src/http/extractors
   boxer_claims.rs0%100%0%0%10–13, 15–17
src/http/middleware
   logging.rs0%100%0%0%10–17, 8–9
src/services/audit
   audit_facade.rs0%100%0%0%101–103, 115–117, 129–135, 47–66, 90–91, 93, 95–99
   log_audit_service.rs0%100%0%0%13–15, 19–20, 25–27, 33, 35–36, 38–39, 44–45, 49, 51–52, 54–56, 61–62, 66, 68, 73–74, 78, 81–82, 84–85, 90, 92, 96, 98–99
src/services/audit/audit_facade
   to_audit_record.rs0%100%0%0%12–14, 6–8
src/services/audit/events
   authorization_audit_event.rs0%100%0%0%21, 23–24, 26, 30–38, 40–42
   resource_delete_audit_event.rs0%100%0%0%11–17
   resource_modification_audit_event.rs0%100%0%0%12–18, 31–34, 36
   token_validation_event.rs0%100%0%0%12–20, 22–30, 32–39, 49–51, 53, 55
src/services/backends
   memory.rs36.59%100%33.33%37.14%108, 31–35, 37, 48–52, 54–57, 68–72, 99
src/services/backends/kubernetes
   kubeconfig_loader.rs0%100%0%0%10–12, 14–16, 18–20, 38–44, 46–51, 60–66, 72–76
   kubernetes_resource_manager.rs47.28%100%37.93%49.03%101–106, 108, 110–114, 116, 141–146, 148–151, 153–157, 159–163, 178–180, 182–187, 235–239, 75–77, 79–84, 86–91, 93–99
   repositories.rs56.64%100%40%58.25%100–104, 157, 164–170, 199, 204, 207, 212, 218, 220–221, 225, 229–232, 80–88, 90–92, 94–97
src/services/backends/kubernetes/kubernetes_resource_manager
   object_owner_mark.rs100%100%100%100%
   spin_lock.rs87.80%100%90%87.10%56–58, 60
   status.rs31.25%100%50%28.57%27, 33–36, 38, 42–44, 51–55, 57, 61–65
src/services/backends/kubernetes/kubernetes_resource_manager/object_owner_mark
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/spin_lock
   tests.rs100%100%100%100%
src/services/backends/kubernetes/kubernetes_resource_manager/status
   not_found_details.rs34.78%100%33.33%35%12–18, 22–26, 29
   owner_conflict_details.rs100%100%100%100%
src/services/backends/kubernetes/repositories
   schema_repository.rs62.86%100%28.57%71.43%51–54
   tests.rs100%100%100%100%
   try_into_object_ref.rs62.50%100%50%64.29%39–43
src/services/backends/kubernetes/repositories/schema_repository
   schema_document.rs93.75%100%85.71%96%
   test_reduced_schema.rs100%100%100%100%
   test_schema.rs100%100%100%100%
   tests.rs100%100%100%100%
src/services/backends/kubernetes/resource_update_handler
   composed_update_handler.rs100%100%100%100%
   logging_update_handler.rs66.67%100%100%63.64%19–20, 25, 28
src/services/backends/kubernetes/resource_update_handler/composed_update_handler
   tests.rs98.44%100%100%98.33%33
src/services/backends/memory
   tests.rs100%100%100%100%
src/services/observability
   composed_logger.rs0%100%0%0%10–15, 17–20, 22–25, 27–28, 30–32, 34–37, 41–43, 45–51, 54–56, 60, 62–66
src/services/observability/open_telemetry
   logging.rs0%100%0%0%10–18, 20–23
   metrics.rs0%100%0%0%16–21, 23–25, 27–29
   tracing.rs0%100%0%0%11–12, 14, 16–18, 20–22, 27–34, 46–56
src/services/observability/open_telemetry/metrics
   into_metric_tag.rs0%100%0%0%10, 8–9
   provider.rs0%100%0%0%21–31, 35–37, 41–43, 47–49, 53–55, 59–61, 65–67, 71–73
   token_accepted.rs0%100%0%0%10–18, 22–26, 28, 30–35, 37
   token_attempt.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_forbidden.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
   token_issued.rs0%100%0%0%10–16, 24–25, 27–31, 33, 8–9
   token_lifetime.rs0%100%0%0%10–17, 25–32, 34, 9
   token_rejected.rs0%100%0%0%10–18, 22–26, 28–31, 33–35
   token_unauthorized.rs0%100%0%0%10–16, 24–25, 27–30, 32, 8–9
src/services/observability/open_telemetry/tracing
   tracing_facade.rs0%100%0%0%23–32, 55–58
src/testing
   api_client_context.rs65.63%100%66.67%65.38%17–20, 22–23, 33–35
   api_extensions.rs65.63%100%100%60.71%31–35, 53–58
   spin_lock_kubernetes_resource_manager_context.rs100%100%100%100%
   temp_namespace_context.rs100%100%100%100%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants