PacoVK / tapir

A Private Terraform Registry
https://pascal.euhus.dev/tapir/
Apache License 2.0
187 stars 12 forks source link

Error loading module if security finding is present #403

Closed TomBeckett closed 3 months ago

TomBeckett commented 3 months ago

We've noticed that if there is an security finding present the modules screen will not load.

To resolve, we've had to remove the report data from our DB for the screen to load.

Version: 0.7.1 and 0.7.0. Stack Trace:

2024-05-16T15:42:16.370174603Z 2024-05-16 15:42:16,369 DEBUG [org.jbo.res.rea.com.cor.AbstractResteasyReactiveContext] (executor-thread-6) Restarting handler chain for exception exception: java.lang.IllegalStateException: Unable to parse JSON {"id":"test-foo-azurerm-1.0.0","moduleName":"foo","moduleVersion":"1.0.0","moduleNamespace":"test","provider":"azurerm","securityReport":{"main.tf":[{"id":"AVD-AZU-0014","qualifiedId":"AVD-AZU-0014","provider":"Azure","service":"keyvault","impact":"Expiration Date is an optional Key Vault Key behavior and is not set by default.\n\nSet when the resource will be become inactive.","resolution":"Set an expiration date on the vault key","links":[https://docs.microsoft.com/en-us/powershell/module/az.keyvault/update-azkeyvaultkey?view=azps-5.8.0#example-1--modify-a-key-to-enable-it--and-set-the-expiration-date-and-tags,https://avd.aquasec.com/misconfig/avd-azu-0014],"description":"Ensure that the expiration date is set on all keys","severity":"MEDIUM","warning":false,"status":0,"resource":"azurerm_key_vault_key.mykey","location":{"fileName":"main.tf","start_line":1,"end_line":9},"rule_description":"Key should have an expiry date specified."}]},"documentation":{"inputs":[],"modules":[],"outputs":[],"providers":[{"name":"azurerm"}],"resources":[{"name":"mykey","type":"key_vault_key","source":"hashicorp/azurerm","mode":"managed","version":"latest"}]},"_rid":"Vb0UAL75uyoFAAAAAAAAAA==","_self":"dbs/Vb0UAA==/colls/Vb0UAL75uyo=/docs/Vb0UAL75uyoFAAAAAAAAAA==/","_etag":"\"0b006deb-0000-1100-0000-664627120000\"","_attachments":"attachments/","_ts":1715873554}
2024-05-16T15:42:16.370312593Z at com.azure.cosmos.implementation.ItemDeserializer$JsonDeserializer.convert(ItemDeserializer.java:38)
2024-05-16T15:42:16.370338181Z at com.azure.cosmos.implementation.Utils.parse(Utils.java:563)
2024-05-16T15:42:16.370354351Z at com.azure.cosmos.models.CosmosItemResponse.getItem(CosmosItemResponse.java:144)
2024-05-16T15:42:16.370362226Z at core.backend.azure.cosmosdb.CosmosDbRepository.getReportByModuleVersion(CosmosDbRepository.java:227)
2024-05-16T15:42:16.370384709Z at core.backend.azure.cosmosdb.CosmosDbRepository_ClientProxy.getReportByModuleVersion(Unknown Source)
2024-05-16T15:42:16.370402071Z at api.Reports.getSecurityReportForModuleVersion(Reports.java:34)
2024-05-16T15:42:16.370409696Z at api.Reports$quarkusrestinvoker$getSecurityReportForModuleVersion_dd50841e3b0db64ee97258dee0aa43a88eba0668.invoke(Unknown Source)
2024-05-16T15:42:16.370417029Z at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
2024-05-16T15:42:16.370424394Z at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
2024-05-16T15:42:16.370431928Z at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
2024-05-16T15:42:16.370439141Z at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)
2024-05-16T15:42:16.370446024Z at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
2024-05-16T15:42:16.370453348Z at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
2024-05-16T15:42:16.370460361Z at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
2024-05-16T15:42:16.370467464Z at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
2024-05-16T15:42:16.370474628Z at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
2024-05-16T15:42:16.370481771Z at java.base/java.lang.Thread.run(Thread.java:1583)
2024-05-16T15:42:16.370489135Z Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `extensions.security.report.SecurityFinding` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
2024-05-16T15:42:16.370496579Z  at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: extensions.core.Report["securityReport"]->java.util.LinkedHashMap["main.tf"]->java.util.ArrayList[0])
2024-05-16T15:42:16.370504174Z at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)
2024-05-16T15:42:16.370511317Z at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1887)
2024-05-16T15:42:16.370518481Z at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:414)
2024-05-16T15:42:16.370525634Z at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1375)
2024-05-16T15:42:16.370536474Z at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1508)
2024-05-16T15:42:16.370543768Z at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:348)
2024-05-16T15:42:16.370550892Z at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)
2024-05-16T15:42:16.370558005Z at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
2024-05-16T15:42:16.370565179Z at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
2024-05-16T15:42:16.370572482Z at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
2024-05-16T15:42:16.370579616Z at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:623)
2024-05-16T15:42:16.370586769Z at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:449)
2024-05-16T15:42:16.370593823Z at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)
2024-05-16T15:42:16.370607989Z at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
2024-05-16T15:42:16.370615494Z at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:310)
2024-05-16T15:42:16.370623078Z at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
2024-05-16T15:42:16.370630812Z at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)
2024-05-16T15:42:16.370638046Z at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:4875)
2024-05-16T15:42:16.370645259Z at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3033)
2024-05-16T15:42:16.370652323Z at com.fasterxml.jackson.databind.ObjectMapper.treeToValue(ObjectMapper.java:3497)
2024-05-16T15:42:16.370659166Z at com.azure.cosmos.implementation.ItemDeserializer$JsonDeserializer.convert(ItemDeserializer.java:36)
2024-05-16T15:42:16.370666309Z ... 16 more