packages feed

dhscanner-kbapi 1.1.4 → 1.2.0

raw patch · 10 files changed

+432/−637 lines, 10 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Content: AuthenticatedHttpGetHandlerRequestObject :: [String] -> Word -> AuthenticatedHttpGetHandlerRequestObject
- Content: AuthenticatedHttpPostHandlerRequestObject :: [String] -> Word -> AuthenticatedHttpPostHandlerRequestObject
- Content: AuthenticatedHttpPutHandlerRequestObject :: [String] -> Word -> AuthenticatedHttpPutHandlerRequestObject
- Content: ByAllButOneBadReturn :: AuthEvidence
- Content: ByHeaderNullCheck :: String -> AuthEvidence
- Content: Comment :: Location -> String -> Comment
- Content: CommentsInFunction :: Location -> Word -> CommentsInFunction
- Content: ConstStringsMatching :: String -> Word -> ConstStringsMatching
- Content: ControlFlowPath :: Location -> Location -> Word -> ControlFlowPath
- Content: ControlFlowReachableFileActionSink :: Location -> Word -> Word -> ControlFlowReachableFileActionSink
- Content: ControlFlowReachableSqlSink :: Location -> Word -> Word -> ControlFlowReachableSqlSink
- Content: DataFlowPath :: Location -> Location -> Word -> DataFlowPath
- Content: FileActionKindCount :: FileActionKind -> Word -> FileActionKindCount
- Content: FileDelete :: FileActionKind
- Content: FileRead :: FileActionKind
- Content: FileWrite :: FileActionKind
- Content: FoundAuthenticatedHttpGetHandlerRequestObject :: Word -> [FoundAuthenticatedHttpGetHandlerRequestObjectMatch] -> FoundAuthenticatedHttpGetHandlerRequestObject
- Content: FoundAuthenticatedHttpGetHandlerRequestObjectMatch :: Location -> Location -> String -> String -> AuthEvidence -> FoundAuthenticatedHttpGetHandlerRequestObjectMatch
- Content: FoundAuthenticatedHttpPostHandlerRequestObject :: Word -> [FoundAuthenticatedHttpPostHandlerRequestObjectMatch] -> FoundAuthenticatedHttpPostHandlerRequestObject
- Content: FoundAuthenticatedHttpPostHandlerRequestObjectMatch :: Location -> Location -> String -> String -> AuthEvidence -> FoundAuthenticatedHttpPostHandlerRequestObjectMatch
- Content: FoundAuthenticatedHttpPutHandlerRequestObject :: Word -> [FoundAuthenticatedHttpPutHandlerRequestObjectMatch] -> FoundAuthenticatedHttpPutHandlerRequestObject
- Content: FoundAuthenticatedHttpPutHandlerRequestObjectMatch :: Location -> Location -> String -> String -> AuthEvidence -> FoundAuthenticatedHttpPutHandlerRequestObjectMatch
- Content: FoundCommentsInFunction :: Location -> Word -> [Comment] -> FoundCommentsInFunction
- Content: FoundConstStringMatch :: Location -> String -> FoundConstStringMatch
- Content: FoundConstStringsMatching :: String -> Word -> [FoundConstStringMatch] -> FoundConstStringsMatching
- Content: FoundControlFlowPath :: Maybe [Location] -> FoundControlFlowPath
- Content: FoundControlFlowReachableFileActionSink :: Word -> [FileActionKindCount] -> [FoundControlFlowReachableFileActionSinkMatch] -> FoundControlFlowReachableFileActionSink
- Content: FoundControlFlowReachableFileActionSinkMatch :: Location -> String -> FileActionKind -> FoundControlFlowReachableFileActionSinkMatch
- Content: FoundControlFlowReachableSqlSink :: Word -> [SqlSinkKindCount] -> [FoundControlFlowReachableSqlSinkMatch] -> FoundControlFlowReachableSqlSink
- Content: FoundControlFlowReachableSqlSinkMatch :: Location -> String -> SqlSinkKind -> FoundControlFlowReachableSqlSinkMatch
- Content: FoundDataFlowPath :: Maybe [Location] -> FoundDataFlowPath
- Content: FoundHttpGetHandlerRequestObject :: Word -> [FoundHttpGetHandlerRequestObjectMatch] -> FoundHttpGetHandlerRequestObject
- Content: FoundHttpGetHandlerRequestObjectMatch :: Location -> Location -> String -> FoundHttpGetHandlerRequestObjectMatch
- Content: FoundHttpPostHandlerRequestObjectMatch :: Location -> Location -> String -> FoundHttpPostHandlerRequestObjectMatch
- Content: FoundHttpPutHandlerRequestObjectMatch :: Location -> Location -> String -> FoundHttpPutHandlerRequestObjectMatch
- Content: FoundUnauthenticatedHttpGetHandlerRequestObject :: Word -> [FoundHttpGetHandlerRequestObjectMatch] -> FoundUnauthenticatedHttpGetHandlerRequestObject
- Content: FoundUnauthenticatedHttpPostHandlerRequestObject :: Word -> [FoundHttpPostHandlerRequestObjectMatch] -> FoundUnauthenticatedHttpPostHandlerRequestObject
- Content: FoundUnauthenticatedHttpPutHandlerRequestObject :: Word -> [FoundHttpPutHandlerRequestObjectMatch] -> FoundUnauthenticatedHttpPutHandlerRequestObject
- Content: FoundWriteContentToLocalFile :: Word -> [Location] -> FoundWriteContentToLocalFile
- Content: HttpGetHandlerRequestObject :: [String] -> Word -> HttpGetHandlerRequestObject
- Content: SqlPreparedStatement :: SqlSinkKind
- Content: SqlRaw :: SqlSinkKind
- Content: SqlSinkKindCount :: SqlSinkKind -> Word -> SqlSinkKindCount
- Content: UnauthenticatedHttpGetHandlerRequestObject :: [String] -> Word -> UnauthenticatedHttpGetHandlerRequestObject
- Content: UnauthenticatedHttpPostHandlerRequestObject :: [String] -> Word -> UnauthenticatedHttpPostHandlerRequestObject
- Content: UnauthenticatedHttpPutHandlerRequestObject :: [String] -> Word -> UnauthenticatedHttpPutHandlerRequestObject
- Content: WriteContentToLocalFile :: Word -> WriteContentToLocalFile
- Content: [authenticatedHttpGetHandlerRequestObjectLimit] :: AuthenticatedHttpGetHandlerRequestObject -> Word
- Content: [authenticatedHttpGetHandlerRequestObjectUrlParts] :: AuthenticatedHttpGetHandlerRequestObject -> [String]
- Content: [authenticatedHttpPostHandlerRequestObjectLimit] :: AuthenticatedHttpPostHandlerRequestObject -> Word
- Content: [authenticatedHttpPostHandlerRequestObjectUrlParts] :: AuthenticatedHttpPostHandlerRequestObject -> [String]
- Content: [authenticatedHttpPutHandlerRequestObjectLimit] :: AuthenticatedHttpPutHandlerRequestObject -> Word
- Content: [authenticatedHttpPutHandlerRequestObjectUrlParts] :: AuthenticatedHttpPutHandlerRequestObject -> [String]
- Content: [commentContent] :: Comment -> String
- Content: [commentLocation] :: Comment -> Location
- Content: [commentsInFunctionLimit] :: CommentsInFunction -> Word
- Content: [commentsInFunctionLocation] :: CommentsInFunction -> Location
- Content: [constStringsMatchingLimit] :: ConstStringsMatching -> Word
- Content: [constStringsMatchingThisRegex] :: ConstStringsMatching -> String
- Content: [controlFlowPathCallee] :: ControlFlowPath -> Location
- Content: [controlFlowPathCaller] :: ControlFlowPath -> Location
- Content: [controlFlowPathLimitNumHops] :: ControlFlowPath -> Word
- Content: [controlFlowReachableFileActionSinkFrom] :: ControlFlowReachableFileActionSink -> Location
- Content: [controlFlowReachableFileActionSinkLimitNumHops] :: ControlFlowReachableFileActionSink -> Word
- Content: [controlFlowReachableFileActionSinkLimit] :: ControlFlowReachableFileActionSink -> Word
- Content: [controlFlowReachableSqlSinkFrom] :: ControlFlowReachableSqlSink -> Location
- Content: [controlFlowReachableSqlSinkLimitNumHops] :: ControlFlowReachableSqlSink -> Word
- Content: [controlFlowReachableSqlSinkLimit] :: ControlFlowReachableSqlSink -> Word
- Content: [dataFlowPathFrom] :: DataFlowPath -> Location
- Content: [dataFlowPathLimitLength] :: DataFlowPath -> Word
- Content: [dataFlowPathTo] :: DataFlowPath -> Location
- Content: [fileActionKindCountCount] :: FileActionKindCount -> Word
- Content: [fileActionKindCountKind] :: FileActionKindCount -> FileActionKind
- Content: [foundAuthenticatedHttpGetHandlerAuthEvidence] :: FoundAuthenticatedHttpGetHandlerRequestObjectMatch -> AuthEvidence
- Content: [foundAuthenticatedHttpGetHandlerAuthenticatingFunctionName] :: FoundAuthenticatedHttpGetHandlerRequestObjectMatch -> String
- Content: [foundAuthenticatedHttpGetHandlerLocation] :: FoundAuthenticatedHttpGetHandlerRequestObjectMatch -> Location
- Content: [foundAuthenticatedHttpGetHandlerRequestObjectLocation] :: FoundAuthenticatedHttpGetHandlerRequestObjectMatch -> Location
- Content: [foundAuthenticatedHttpGetHandlerRequestObjectMatchUrl] :: FoundAuthenticatedHttpGetHandlerRequestObjectMatch -> String
- Content: [foundAuthenticatedHttpGetHandlerRequestObjectMatches] :: FoundAuthenticatedHttpGetHandlerRequestObject -> [FoundAuthenticatedHttpGetHandlerRequestObjectMatch]
- Content: [foundAuthenticatedHttpGetHandlerRequestObjectTotal] :: FoundAuthenticatedHttpGetHandlerRequestObject -> Word
- Content: [foundAuthenticatedHttpPostHandlerAuthEvidence] :: FoundAuthenticatedHttpPostHandlerRequestObjectMatch -> AuthEvidence
- Content: [foundAuthenticatedHttpPostHandlerAuthenticatingFunctionName] :: FoundAuthenticatedHttpPostHandlerRequestObjectMatch -> String
- Content: [foundAuthenticatedHttpPostHandlerLocation] :: FoundAuthenticatedHttpPostHandlerRequestObjectMatch -> Location
- Content: [foundAuthenticatedHttpPostHandlerRequestObjectLocation] :: FoundAuthenticatedHttpPostHandlerRequestObjectMatch -> Location
- Content: [foundAuthenticatedHttpPostHandlerRequestObjectMatchUrl] :: FoundAuthenticatedHttpPostHandlerRequestObjectMatch -> String
- Content: [foundAuthenticatedHttpPostHandlerRequestObjectMatches] :: FoundAuthenticatedHttpPostHandlerRequestObject -> [FoundAuthenticatedHttpPostHandlerRequestObjectMatch]
- Content: [foundAuthenticatedHttpPostHandlerRequestObjectTotal] :: FoundAuthenticatedHttpPostHandlerRequestObject -> Word
- Content: [foundAuthenticatedHttpPutHandlerAuthEvidence] :: FoundAuthenticatedHttpPutHandlerRequestObjectMatch -> AuthEvidence
- Content: [foundAuthenticatedHttpPutHandlerAuthenticatingFunctionName] :: FoundAuthenticatedHttpPutHandlerRequestObjectMatch -> String
- Content: [foundAuthenticatedHttpPutHandlerLocation] :: FoundAuthenticatedHttpPutHandlerRequestObjectMatch -> Location
- Content: [foundAuthenticatedHttpPutHandlerRequestObjectLocation] :: FoundAuthenticatedHttpPutHandlerRequestObjectMatch -> Location
- Content: [foundAuthenticatedHttpPutHandlerRequestObjectMatchUrl] :: FoundAuthenticatedHttpPutHandlerRequestObjectMatch -> String
- Content: [foundAuthenticatedHttpPutHandlerRequestObjectMatches] :: FoundAuthenticatedHttpPutHandlerRequestObject -> [FoundAuthenticatedHttpPutHandlerRequestObjectMatch]
- Content: [foundAuthenticatedHttpPutHandlerRequestObjectTotal] :: FoundAuthenticatedHttpPutHandlerRequestObject -> Word
- Content: [foundCommentsInFunctionComments] :: FoundCommentsInFunction -> [Comment]
- Content: [foundCommentsInFunctionLocation] :: FoundCommentsInFunction -> Location
- Content: [foundCommentsInFunctionTotal] :: FoundCommentsInFunction -> Word
- Content: [foundConstStringMatchLocation] :: FoundConstStringMatch -> Location
- Content: [foundConstStringMatchValue] :: FoundConstStringMatch -> String
- Content: [foundConstStringsMatchesTotal] :: FoundConstStringsMatching -> Word
- Content: [foundConstStringsMatches] :: FoundConstStringsMatching -> [FoundConstStringMatch]
- Content: [foundConstStringsMatchingThisRegex] :: FoundConstStringsMatching -> String
- Content: [foundControlFlowPathPath] :: FoundControlFlowPath -> Maybe [Location]
- Content: [foundControlFlowReachableFileActionSinkCountsByKind] :: FoundControlFlowReachableFileActionSink -> [FileActionKindCount]
- Content: [foundControlFlowReachableFileActionSinkMatchKind] :: FoundControlFlowReachableFileActionSinkMatch -> FileActionKind
- Content: [foundControlFlowReachableFileActionSinkMatchLocation] :: FoundControlFlowReachableFileActionSinkMatch -> Location
- Content: [foundControlFlowReachableFileActionSinkMatchQualifiedName] :: FoundControlFlowReachableFileActionSinkMatch -> String
- Content: [foundControlFlowReachableFileActionSinkMatches] :: FoundControlFlowReachableFileActionSink -> [FoundControlFlowReachableFileActionSinkMatch]
- Content: [foundControlFlowReachableFileActionSinkTotal] :: FoundControlFlowReachableFileActionSink -> Word
- Content: [foundControlFlowReachableSqlSinkCountsByKind] :: FoundControlFlowReachableSqlSink -> [SqlSinkKindCount]
- Content: [foundControlFlowReachableSqlSinkMatchKind] :: FoundControlFlowReachableSqlSinkMatch -> SqlSinkKind
- Content: [foundControlFlowReachableSqlSinkMatchLocation] :: FoundControlFlowReachableSqlSinkMatch -> Location
- Content: [foundControlFlowReachableSqlSinkMatchQualifiedName] :: FoundControlFlowReachableSqlSinkMatch -> String
- Content: [foundControlFlowReachableSqlSinkMatches] :: FoundControlFlowReachableSqlSink -> [FoundControlFlowReachableSqlSinkMatch]
- Content: [foundControlFlowReachableSqlSinkTotal] :: FoundControlFlowReachableSqlSink -> Word
- Content: [foundDataFlowPathPath] :: FoundDataFlowPath -> Maybe [Location]
- Content: [foundHttpGetHandlerLocation] :: FoundHttpGetHandlerRequestObjectMatch -> Location
- Content: [foundHttpGetHandlerRequestObjectMatchLocation] :: FoundHttpGetHandlerRequestObjectMatch -> Location
- Content: [foundHttpGetHandlerRequestObjectMatchUrl] :: FoundHttpGetHandlerRequestObjectMatch -> String
- Content: [foundHttpGetHandlerRequestObjectMatches] :: FoundHttpGetHandlerRequestObject -> [FoundHttpGetHandlerRequestObjectMatch]
- Content: [foundHttpGetHandlerRequestObjectTotal] :: FoundHttpGetHandlerRequestObject -> Word
- Content: [foundHttpPostHandlerLocation] :: FoundHttpPostHandlerRequestObjectMatch -> Location
- Content: [foundHttpPostHandlerRequestObjectLocation] :: FoundHttpPostHandlerRequestObjectMatch -> Location
- Content: [foundHttpPostHandlerRequestObjectMatchUrl] :: FoundHttpPostHandlerRequestObjectMatch -> String
- Content: [foundHttpPutHandlerLocation] :: FoundHttpPutHandlerRequestObjectMatch -> Location
- Content: [foundHttpPutHandlerRequestObjectLocation] :: FoundHttpPutHandlerRequestObjectMatch -> Location
- Content: [foundHttpPutHandlerRequestObjectMatchUrl] :: FoundHttpPutHandlerRequestObjectMatch -> String
- Content: [foundUnauthenticatedHttpGetHandlerRequestObjectMatches] :: FoundUnauthenticatedHttpGetHandlerRequestObject -> [FoundHttpGetHandlerRequestObjectMatch]
- Content: [foundUnauthenticatedHttpGetHandlerRequestObjectTotal] :: FoundUnauthenticatedHttpGetHandlerRequestObject -> Word
- Content: [foundUnauthenticatedHttpPostHandlerRequestObjectMatches] :: FoundUnauthenticatedHttpPostHandlerRequestObject -> [FoundHttpPostHandlerRequestObjectMatch]
- Content: [foundUnauthenticatedHttpPostHandlerRequestObjectTotal] :: FoundUnauthenticatedHttpPostHandlerRequestObject -> Word
- Content: [foundUnauthenticatedHttpPutHandlerRequestObjectMatches] :: FoundUnauthenticatedHttpPutHandlerRequestObject -> [FoundHttpPutHandlerRequestObjectMatch]
- Content: [foundUnauthenticatedHttpPutHandlerRequestObjectTotal] :: FoundUnauthenticatedHttpPutHandlerRequestObject -> Word
- Content: [foundWriteContentToLocalFileLocations] :: FoundWriteContentToLocalFile -> [Location]
- Content: [foundWriteContentToLocalFileTotal] :: FoundWriteContentToLocalFile -> Word
- Content: [httpGetHandlerRequestObjectLimit] :: HttpGetHandlerRequestObject -> Word
- Content: [httpGetHandlerRequestObjectUrlParts] :: HttpGetHandlerRequestObject -> [String]
- Content: [sqlSinkKindCountCount] :: SqlSinkKindCount -> Word
- Content: [sqlSinkKindCountKind] :: SqlSinkKindCount -> SqlSinkKind
- Content: [unauthenticatedHttpGetHandlerRequestObjectLimit] :: UnauthenticatedHttpGetHandlerRequestObject -> Word
- Content: [unauthenticatedHttpGetHandlerRequestObjectUrlParts] :: UnauthenticatedHttpGetHandlerRequestObject -> [String]
- Content: [unauthenticatedHttpPostHandlerRequestObjectLimit] :: UnauthenticatedHttpPostHandlerRequestObject -> Word
- Content: [unauthenticatedHttpPostHandlerRequestObjectUrlParts] :: UnauthenticatedHttpPostHandlerRequestObject -> [String]
- Content: [unauthenticatedHttpPutHandlerRequestObjectLimit] :: UnauthenticatedHttpPutHandlerRequestObject -> Word
- Content: [unauthenticatedHttpPutHandlerRequestObjectUrlParts] :: UnauthenticatedHttpPutHandlerRequestObject -> [String]
- Content: [writeContentToLocalFileLimit] :: WriteContentToLocalFile -> Word
- Content: data AuthEvidence
- Content: data AuthenticatedHttpGetHandlerRequestObject
- Content: data AuthenticatedHttpPostHandlerRequestObject
- Content: data AuthenticatedHttpPutHandlerRequestObject
- Content: data Comment
- Content: data CommentsInFunction
- Content: data ConstStringsMatching
- Content: data ControlFlowPath
- Content: data ControlFlowReachableFileActionSink
- Content: data ControlFlowReachableSqlSink
- Content: data DataFlowPath
- Content: data FileActionKind
- Content: data FileActionKindCount
- Content: data FoundAuthenticatedHttpGetHandlerRequestObject
- Content: data FoundAuthenticatedHttpGetHandlerRequestObjectMatch
- Content: data FoundAuthenticatedHttpPostHandlerRequestObject
- Content: data FoundAuthenticatedHttpPostHandlerRequestObjectMatch
- Content: data FoundAuthenticatedHttpPutHandlerRequestObject
- Content: data FoundAuthenticatedHttpPutHandlerRequestObjectMatch
- Content: data FoundCommentsInFunction
- Content: data FoundConstStringMatch
- Content: data FoundConstStringsMatching
- Content: data FoundControlFlowPath
- Content: data FoundControlFlowReachableFileActionSink
- Content: data FoundControlFlowReachableFileActionSinkMatch
- Content: data FoundControlFlowReachableSqlSink
- Content: data FoundControlFlowReachableSqlSinkMatch
- Content: data FoundDataFlowPath
- Content: data FoundHttpGetHandlerRequestObject
- Content: data FoundHttpGetHandlerRequestObjectMatch
- Content: data FoundHttpPostHandlerRequestObjectMatch
- Content: data FoundHttpPutHandlerRequestObjectMatch
- Content: data FoundUnauthenticatedHttpGetHandlerRequestObject
- Content: data FoundUnauthenticatedHttpPostHandlerRequestObject
- Content: data FoundUnauthenticatedHttpPutHandlerRequestObject
- Content: data FoundWriteContentToLocalFile
- Content: data HttpGetHandlerRequestObject
- Content: data SqlSinkKind
- Content: data SqlSinkKindCount
- Content: data UnauthenticatedHttpGetHandlerRequestObject
- Content: data UnauthenticatedHttpPostHandlerRequestObject
- Content: data UnauthenticatedHttpPutHandlerRequestObject
- Content: data WriteContentToLocalFile
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.AuthEvidence
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.AuthenticatedHttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.AuthenticatedHttpPostHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.AuthenticatedHttpPutHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.Comment
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.CommentsInFunction
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.ConstStringsMatching
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.ControlFlowPath
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.ControlFlowReachableFileActionSink
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.ControlFlowReachableSqlSink
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.DataFlowPath
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FileActionKind
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FileActionKindCount
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundAuthenticatedHttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundAuthenticatedHttpGetHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundAuthenticatedHttpPostHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundAuthenticatedHttpPostHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundAuthenticatedHttpPutHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundAuthenticatedHttpPutHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundCommentsInFunction
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundConstStringMatch
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundConstStringsMatching
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundControlFlowPath
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundControlFlowReachableFileActionSink
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundControlFlowReachableFileActionSinkMatch
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundControlFlowReachableSqlSink
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundControlFlowReachableSqlSinkMatch
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundDataFlowPath
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundHttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundHttpGetHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundHttpPostHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundHttpPutHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundUnauthenticatedHttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundUnauthenticatedHttpPostHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundUnauthenticatedHttpPutHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.FoundWriteContentToLocalFile
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.HttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.SqlSinkKind
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.SqlSinkKindCount
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.UnauthenticatedHttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.UnauthenticatedHttpPostHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.UnauthenticatedHttpPutHandlerRequestObject
- Content: instance Data.Aeson.Types.FromJSON.FromJSON Content.WriteContentToLocalFile
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.AuthEvidence
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.AuthenticatedHttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.AuthenticatedHttpPostHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.AuthenticatedHttpPutHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.Comment
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.CommentsInFunction
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.ConstStringsMatching
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.ControlFlowPath
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.ControlFlowReachableFileActionSink
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.ControlFlowReachableSqlSink
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.DataFlowPath
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FileActionKind
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FileActionKindCount
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundAuthenticatedHttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundAuthenticatedHttpGetHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundAuthenticatedHttpPostHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundAuthenticatedHttpPostHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundAuthenticatedHttpPutHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundAuthenticatedHttpPutHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundCommentsInFunction
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundConstStringMatch
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundConstStringsMatching
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundControlFlowPath
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundControlFlowReachableFileActionSink
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundControlFlowReachableFileActionSinkMatch
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundControlFlowReachableSqlSink
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundControlFlowReachableSqlSinkMatch
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundDataFlowPath
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundHttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundHttpGetHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundHttpPostHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundHttpPutHandlerRequestObjectMatch
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundUnauthenticatedHttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundUnauthenticatedHttpPostHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundUnauthenticatedHttpPutHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.FoundWriteContentToLocalFile
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.HttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.SqlSinkKind
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.SqlSinkKindCount
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.UnauthenticatedHttpGetHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.UnauthenticatedHttpPostHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.UnauthenticatedHttpPutHandlerRequestObject
- Content: instance Data.Aeson.Types.ToJSON.ToJSON Content.WriteContentToLocalFile
- Content: instance GHC.Internal.Classes.Eq Content.AuthEvidence
- Content: instance GHC.Internal.Classes.Eq Content.AuthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.AuthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.AuthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.Comment
- Content: instance GHC.Internal.Classes.Eq Content.CommentsInFunction
- Content: instance GHC.Internal.Classes.Eq Content.ConstStringsMatching
- Content: instance GHC.Internal.Classes.Eq Content.ControlFlowPath
- Content: instance GHC.Internal.Classes.Eq Content.ControlFlowReachableFileActionSink
- Content: instance GHC.Internal.Classes.Eq Content.ControlFlowReachableSqlSink
- Content: instance GHC.Internal.Classes.Eq Content.DataFlowPath
- Content: instance GHC.Internal.Classes.Eq Content.FileActionKind
- Content: instance GHC.Internal.Classes.Eq Content.FileActionKindCount
- Content: instance GHC.Internal.Classes.Eq Content.FoundAuthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.FoundAuthenticatedHttpGetHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Eq Content.FoundAuthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.FoundAuthenticatedHttpPostHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Eq Content.FoundAuthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.FoundAuthenticatedHttpPutHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Eq Content.FoundCommentsInFunction
- Content: instance GHC.Internal.Classes.Eq Content.FoundConstStringMatch
- Content: instance GHC.Internal.Classes.Eq Content.FoundConstStringsMatching
- Content: instance GHC.Internal.Classes.Eq Content.FoundControlFlowPath
- Content: instance GHC.Internal.Classes.Eq Content.FoundControlFlowReachableFileActionSink
- Content: instance GHC.Internal.Classes.Eq Content.FoundControlFlowReachableFileActionSinkMatch
- Content: instance GHC.Internal.Classes.Eq Content.FoundControlFlowReachableSqlSink
- Content: instance GHC.Internal.Classes.Eq Content.FoundControlFlowReachableSqlSinkMatch
- Content: instance GHC.Internal.Classes.Eq Content.FoundDataFlowPath
- Content: instance GHC.Internal.Classes.Eq Content.FoundHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.FoundHttpGetHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Eq Content.FoundHttpPostHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Eq Content.FoundHttpPutHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Eq Content.FoundUnauthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.FoundUnauthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.FoundUnauthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.FoundWriteContentToLocalFile
- Content: instance GHC.Internal.Classes.Eq Content.HttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.SqlSinkKind
- Content: instance GHC.Internal.Classes.Eq Content.SqlSinkKindCount
- Content: instance GHC.Internal.Classes.Eq Content.UnauthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.UnauthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.UnauthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Classes.Eq Content.WriteContentToLocalFile
- Content: instance GHC.Internal.Classes.Ord Content.AuthEvidence
- Content: instance GHC.Internal.Classes.Ord Content.AuthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.AuthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.AuthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.Comment
- Content: instance GHC.Internal.Classes.Ord Content.CommentsInFunction
- Content: instance GHC.Internal.Classes.Ord Content.ConstStringsMatching
- Content: instance GHC.Internal.Classes.Ord Content.ControlFlowPath
- Content: instance GHC.Internal.Classes.Ord Content.ControlFlowReachableFileActionSink
- Content: instance GHC.Internal.Classes.Ord Content.ControlFlowReachableSqlSink
- Content: instance GHC.Internal.Classes.Ord Content.DataFlowPath
- Content: instance GHC.Internal.Classes.Ord Content.FileActionKind
- Content: instance GHC.Internal.Classes.Ord Content.FileActionKindCount
- Content: instance GHC.Internal.Classes.Ord Content.FoundAuthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.FoundAuthenticatedHttpGetHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Ord Content.FoundAuthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.FoundAuthenticatedHttpPostHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Ord Content.FoundAuthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.FoundAuthenticatedHttpPutHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Ord Content.FoundCommentsInFunction
- Content: instance GHC.Internal.Classes.Ord Content.FoundConstStringMatch
- Content: instance GHC.Internal.Classes.Ord Content.FoundConstStringsMatching
- Content: instance GHC.Internal.Classes.Ord Content.FoundControlFlowPath
- Content: instance GHC.Internal.Classes.Ord Content.FoundControlFlowReachableFileActionSink
- Content: instance GHC.Internal.Classes.Ord Content.FoundControlFlowReachableFileActionSinkMatch
- Content: instance GHC.Internal.Classes.Ord Content.FoundControlFlowReachableSqlSink
- Content: instance GHC.Internal.Classes.Ord Content.FoundControlFlowReachableSqlSinkMatch
- Content: instance GHC.Internal.Classes.Ord Content.FoundDataFlowPath
- Content: instance GHC.Internal.Classes.Ord Content.FoundHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.FoundHttpGetHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Ord Content.FoundHttpPostHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Ord Content.FoundHttpPutHandlerRequestObjectMatch
- Content: instance GHC.Internal.Classes.Ord Content.FoundUnauthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.FoundUnauthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.FoundUnauthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.FoundWriteContentToLocalFile
- Content: instance GHC.Internal.Classes.Ord Content.HttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.SqlSinkKind
- Content: instance GHC.Internal.Classes.Ord Content.SqlSinkKindCount
- Content: instance GHC.Internal.Classes.Ord Content.UnauthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.UnauthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.UnauthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Classes.Ord Content.WriteContentToLocalFile
- Content: instance GHC.Internal.Generics.Generic Content.AuthEvidence
- Content: instance GHC.Internal.Generics.Generic Content.AuthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.AuthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.AuthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.Comment
- Content: instance GHC.Internal.Generics.Generic Content.CommentsInFunction
- Content: instance GHC.Internal.Generics.Generic Content.ConstStringsMatching
- Content: instance GHC.Internal.Generics.Generic Content.ControlFlowPath
- Content: instance GHC.Internal.Generics.Generic Content.ControlFlowReachableFileActionSink
- Content: instance GHC.Internal.Generics.Generic Content.ControlFlowReachableSqlSink
- Content: instance GHC.Internal.Generics.Generic Content.DataFlowPath
- Content: instance GHC.Internal.Generics.Generic Content.FileActionKind
- Content: instance GHC.Internal.Generics.Generic Content.FileActionKindCount
- Content: instance GHC.Internal.Generics.Generic Content.FoundAuthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.FoundAuthenticatedHttpGetHandlerRequestObjectMatch
- Content: instance GHC.Internal.Generics.Generic Content.FoundAuthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.FoundAuthenticatedHttpPostHandlerRequestObjectMatch
- Content: instance GHC.Internal.Generics.Generic Content.FoundAuthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.FoundAuthenticatedHttpPutHandlerRequestObjectMatch
- Content: instance GHC.Internal.Generics.Generic Content.FoundCommentsInFunction
- Content: instance GHC.Internal.Generics.Generic Content.FoundConstStringMatch
- Content: instance GHC.Internal.Generics.Generic Content.FoundConstStringsMatching
- Content: instance GHC.Internal.Generics.Generic Content.FoundControlFlowPath
- Content: instance GHC.Internal.Generics.Generic Content.FoundControlFlowReachableFileActionSink
- Content: instance GHC.Internal.Generics.Generic Content.FoundControlFlowReachableFileActionSinkMatch
- Content: instance GHC.Internal.Generics.Generic Content.FoundControlFlowReachableSqlSink
- Content: instance GHC.Internal.Generics.Generic Content.FoundControlFlowReachableSqlSinkMatch
- Content: instance GHC.Internal.Generics.Generic Content.FoundDataFlowPath
- Content: instance GHC.Internal.Generics.Generic Content.FoundHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.FoundHttpGetHandlerRequestObjectMatch
- Content: instance GHC.Internal.Generics.Generic Content.FoundHttpPostHandlerRequestObjectMatch
- Content: instance GHC.Internal.Generics.Generic Content.FoundHttpPutHandlerRequestObjectMatch
- Content: instance GHC.Internal.Generics.Generic Content.FoundUnauthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.FoundUnauthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.FoundUnauthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.FoundWriteContentToLocalFile
- Content: instance GHC.Internal.Generics.Generic Content.HttpGetHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.SqlSinkKind
- Content: instance GHC.Internal.Generics.Generic Content.SqlSinkKindCount
- Content: instance GHC.Internal.Generics.Generic Content.UnauthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.UnauthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.UnauthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Generics.Generic Content.WriteContentToLocalFile
- Content: instance GHC.Internal.Show.Show Content.AuthEvidence
- Content: instance GHC.Internal.Show.Show Content.AuthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.AuthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.AuthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.Comment
- Content: instance GHC.Internal.Show.Show Content.CommentsInFunction
- Content: instance GHC.Internal.Show.Show Content.ConstStringsMatching
- Content: instance GHC.Internal.Show.Show Content.ControlFlowPath
- Content: instance GHC.Internal.Show.Show Content.ControlFlowReachableFileActionSink
- Content: instance GHC.Internal.Show.Show Content.ControlFlowReachableSqlSink
- Content: instance GHC.Internal.Show.Show Content.DataFlowPath
- Content: instance GHC.Internal.Show.Show Content.FileActionKind
- Content: instance GHC.Internal.Show.Show Content.FileActionKindCount
- Content: instance GHC.Internal.Show.Show Content.FoundAuthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.FoundAuthenticatedHttpGetHandlerRequestObjectMatch
- Content: instance GHC.Internal.Show.Show Content.FoundAuthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.FoundAuthenticatedHttpPostHandlerRequestObjectMatch
- Content: instance GHC.Internal.Show.Show Content.FoundAuthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.FoundAuthenticatedHttpPutHandlerRequestObjectMatch
- Content: instance GHC.Internal.Show.Show Content.FoundCommentsInFunction
- Content: instance GHC.Internal.Show.Show Content.FoundConstStringMatch
- Content: instance GHC.Internal.Show.Show Content.FoundConstStringsMatching
- Content: instance GHC.Internal.Show.Show Content.FoundControlFlowPath
- Content: instance GHC.Internal.Show.Show Content.FoundControlFlowReachableFileActionSink
- Content: instance GHC.Internal.Show.Show Content.FoundControlFlowReachableFileActionSinkMatch
- Content: instance GHC.Internal.Show.Show Content.FoundControlFlowReachableSqlSink
- Content: instance GHC.Internal.Show.Show Content.FoundControlFlowReachableSqlSinkMatch
- Content: instance GHC.Internal.Show.Show Content.FoundDataFlowPath
- Content: instance GHC.Internal.Show.Show Content.FoundHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.FoundHttpGetHandlerRequestObjectMatch
- Content: instance GHC.Internal.Show.Show Content.FoundHttpPostHandlerRequestObjectMatch
- Content: instance GHC.Internal.Show.Show Content.FoundHttpPutHandlerRequestObjectMatch
- Content: instance GHC.Internal.Show.Show Content.FoundUnauthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.FoundUnauthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.FoundUnauthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.FoundWriteContentToLocalFile
- Content: instance GHC.Internal.Show.Show Content.HttpGetHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.SqlSinkKind
- Content: instance GHC.Internal.Show.Show Content.SqlSinkKindCount
- Content: instance GHC.Internal.Show.Show Content.UnauthenticatedHttpGetHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.UnauthenticatedHttpPostHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.UnauthenticatedHttpPutHandlerRequestObject
- Content: instance GHC.Internal.Show.Show Content.WriteContentToLocalFile
- Kbapi: AuthenticatedHttpGetHandlerRequestObject :: AuthenticatedHttpGetHandlerRequestObject -> Query
- Kbapi: AuthenticatedHttpPostHandlerRequestObject :: AuthenticatedHttpPostHandlerRequestObject -> Query
- Kbapi: AuthenticatedHttpPutHandlerRequestObject :: AuthenticatedHttpPutHandlerRequestObject -> Query
- Kbapi: CommentsInFunction :: CommentsInFunction -> Query
- Kbapi: ConstStringsMatching :: ConstStringsMatching -> Query
- Kbapi: ControlFlowPath :: ControlFlowPath -> Query
- Kbapi: ControlFlowReachableFileActionSink :: ControlFlowReachableFileActionSink -> Query
- Kbapi: ControlFlowReachableSqlSink :: ControlFlowReachableSqlSink -> Query
- Kbapi: DataFlowPath :: DataFlowPath -> Query
- Kbapi: FoundAuthenticatedHttpGetHandlerRequestObject :: FoundAuthenticatedHttpGetHandlerRequestObject -> QueryResult
- Kbapi: FoundAuthenticatedHttpPostHandlerRequestObject :: FoundAuthenticatedHttpPostHandlerRequestObject -> QueryResult
- Kbapi: FoundAuthenticatedHttpPutHandlerRequestObject :: FoundAuthenticatedHttpPutHandlerRequestObject -> QueryResult
- Kbapi: FoundControlFlowPath :: FoundControlFlowPath -> QueryResult
- Kbapi: FoundControlFlowReachableFileActionSink :: FoundControlFlowReachableFileActionSink -> QueryResult
- Kbapi: FoundControlFlowReachableSqlSink :: FoundControlFlowReachableSqlSink -> QueryResult
- Kbapi: FoundHttpGetHandlerRequestObject :: FoundHttpGetHandlerRequestObject -> QueryResult
- Kbapi: FoundUnauthenticatedHttpGetHandlerRequestObject :: FoundUnauthenticatedHttpGetHandlerRequestObject -> QueryResult
- Kbapi: FoundUnauthenticatedHttpPostHandlerRequestObject :: FoundUnauthenticatedHttpPostHandlerRequestObject -> QueryResult
- Kbapi: FoundUnauthenticatedHttpPutHandlerRequestObject :: FoundUnauthenticatedHttpPutHandlerRequestObject -> QueryResult
- Kbapi: FoundWriteContentToLocalFile :: FoundWriteContentToLocalFile -> QueryResult
- Kbapi: HttpGetHandlerRequestObject :: HttpGetHandlerRequestObject -> Query
- Kbapi: UnauthenticatedHttpGetHandlerRequestObject :: UnauthenticatedHttpGetHandlerRequestObject -> Query
- Kbapi: UnauthenticatedHttpPostHandlerRequestObject :: UnauthenticatedHttpPostHandlerRequestObject -> Query
- Kbapi: UnauthenticatedHttpPutHandlerRequestObject :: UnauthenticatedHttpPutHandlerRequestObject -> Query
- Kbapi: WriteContentToLocalFile :: WriteContentToLocalFile -> Query
+ Kbapi: FoundControlFlowReachableSinks :: Content -> QueryResult
+ Kbapi: FoundHttpHandlers :: Content -> QueryResult
+ Kbapi: FoundSanitizers :: Content -> QueryResult
+ Kbapi: SelectComments :: Features -> Query
+ Kbapi: SelectConstStrings :: Features -> Query
+ Kbapi: SelectControlFlowReachableSinks :: Features -> Query
+ Kbapi: SelectDataFlowPath :: Features -> Query
+ Kbapi: SelectHttpHandlers :: Features -> Query
+ Kbapi: SelectSanitizers :: Features -> Query
+ WithComments: Comment :: Location -> String -> Comment
+ WithComments: Content :: Word -> [Comment] -> Content
+ WithComments: Features :: Location -> Word -> Features
+ WithComments: [commentContent] :: Comment -> String
+ WithComments: [commentLocation] :: Comment -> Location
+ WithComments: [inFunction] :: Features -> Location
+ WithComments: [matches] :: Content -> [Comment]
+ WithComments: [maxNumComments] :: Features -> Word
+ WithComments: [total] :: Content -> Word
+ WithComments: data Comment
+ WithComments: data Content
+ WithComments: data Features
+ WithComments: instance Data.Aeson.Types.FromJSON.FromJSON WithComments.Comment
+ WithComments: instance Data.Aeson.Types.FromJSON.FromJSON WithComments.Content
+ WithComments: instance Data.Aeson.Types.FromJSON.FromJSON WithComments.Features
+ WithComments: instance Data.Aeson.Types.ToJSON.ToJSON WithComments.Comment
+ WithComments: instance Data.Aeson.Types.ToJSON.ToJSON WithComments.Content
+ WithComments: instance Data.Aeson.Types.ToJSON.ToJSON WithComments.Features
+ WithComments: instance GHC.Internal.Classes.Eq WithComments.Comment
+ WithComments: instance GHC.Internal.Classes.Eq WithComments.Content
+ WithComments: instance GHC.Internal.Classes.Eq WithComments.Features
+ WithComments: instance GHC.Internal.Classes.Ord WithComments.Comment
+ WithComments: instance GHC.Internal.Classes.Ord WithComments.Content
+ WithComments: instance GHC.Internal.Classes.Ord WithComments.Features
+ WithComments: instance GHC.Internal.Generics.Generic WithComments.Comment
+ WithComments: instance GHC.Internal.Generics.Generic WithComments.Content
+ WithComments: instance GHC.Internal.Generics.Generic WithComments.Features
+ WithComments: instance GHC.Internal.Show.Show WithComments.Comment
+ WithComments: instance GHC.Internal.Show.Show WithComments.Content
+ WithComments: instance GHC.Internal.Show.Show WithComments.Features
+ WithConstStrings: Content :: Word -> [Match] -> Content
+ WithConstStrings: Features :: String -> Word -> Features
+ WithConstStrings: Match :: Location -> String -> Match
+ WithConstStrings: [location] :: Match -> Location
+ WithConstStrings: [matches] :: Content -> [Match]
+ WithConstStrings: [matchingRegex] :: Features -> String
+ WithConstStrings: [maxNumConstStrings] :: Features -> Word
+ WithConstStrings: [total] :: Content -> Word
+ WithConstStrings: [value] :: Match -> String
+ WithConstStrings: data Content
+ WithConstStrings: data Features
+ WithConstStrings: data Match
+ WithConstStrings: instance Data.Aeson.Types.FromJSON.FromJSON WithConstStrings.Content
+ WithConstStrings: instance Data.Aeson.Types.FromJSON.FromJSON WithConstStrings.Features
+ WithConstStrings: instance Data.Aeson.Types.FromJSON.FromJSON WithConstStrings.Match
+ WithConstStrings: instance Data.Aeson.Types.ToJSON.ToJSON WithConstStrings.Content
+ WithConstStrings: instance Data.Aeson.Types.ToJSON.ToJSON WithConstStrings.Features
+ WithConstStrings: instance Data.Aeson.Types.ToJSON.ToJSON WithConstStrings.Match
+ WithConstStrings: instance GHC.Internal.Classes.Eq WithConstStrings.Content
+ WithConstStrings: instance GHC.Internal.Classes.Eq WithConstStrings.Features
+ WithConstStrings: instance GHC.Internal.Classes.Eq WithConstStrings.Match
+ WithConstStrings: instance GHC.Internal.Classes.Ord WithConstStrings.Content
+ WithConstStrings: instance GHC.Internal.Classes.Ord WithConstStrings.Features
+ WithConstStrings: instance GHC.Internal.Classes.Ord WithConstStrings.Match
+ WithConstStrings: instance GHC.Internal.Generics.Generic WithConstStrings.Content
+ WithConstStrings: instance GHC.Internal.Generics.Generic WithConstStrings.Features
+ WithConstStrings: instance GHC.Internal.Generics.Generic WithConstStrings.Match
+ WithConstStrings: instance GHC.Internal.Show.Show WithConstStrings.Content
+ WithConstStrings: instance GHC.Internal.Show.Show WithConstStrings.Features
+ WithConstStrings: instance GHC.Internal.Show.Show WithConstStrings.Match
+ WithControlFlowReachableSinks: Content :: Word -> [Match] -> Content
+ WithControlFlowReachableSinks: Features :: Location -> Set Sink -> Word -> Word -> Features
+ WithControlFlowReachableSinks: FileOperationDelete :: Sink
+ WithControlFlowReachableSinks: FileOperationRead :: Sink
+ WithControlFlowReachableSinks: FileOperationWrite :: Sink
+ WithControlFlowReachableSinks: Match :: Location -> String -> Sink -> Match
+ WithControlFlowReachableSinks: OpenRedirect :: Sink
+ WithControlFlowReachableSinks: SQL :: Sink
+ WithControlFlowReachableSinks: SSRF :: Sink
+ WithControlFlowReachableSinks: [from] :: Features -> Location
+ WithControlFlowReachableSinks: [kind] :: Match -> Sink
+ WithControlFlowReachableSinks: [location] :: Match -> Location
+ WithControlFlowReachableSinks: [matches] :: Content -> [Match]
+ WithControlFlowReachableSinks: [maxNumHops] :: Features -> Word
+ WithControlFlowReachableSinks: [maxNumSinks] :: Features -> Word
+ WithControlFlowReachableSinks: [qualifiedName] :: Match -> String
+ WithControlFlowReachableSinks: [sinks] :: Features -> Set Sink
+ WithControlFlowReachableSinks: [total] :: Content -> Word
+ WithControlFlowReachableSinks: data Content
+ WithControlFlowReachableSinks: data Features
+ WithControlFlowReachableSinks: data Match
+ WithControlFlowReachableSinks: data Sink
+ WithControlFlowReachableSinks: instance Data.Aeson.Types.FromJSON.FromJSON WithControlFlowReachableSinks.Content
+ WithControlFlowReachableSinks: instance Data.Aeson.Types.FromJSON.FromJSON WithControlFlowReachableSinks.Features
+ WithControlFlowReachableSinks: instance Data.Aeson.Types.FromJSON.FromJSON WithControlFlowReachableSinks.Match
+ WithControlFlowReachableSinks: instance Data.Aeson.Types.FromJSON.FromJSON WithControlFlowReachableSinks.Sink
+ WithControlFlowReachableSinks: instance Data.Aeson.Types.ToJSON.ToJSON WithControlFlowReachableSinks.Content
+ WithControlFlowReachableSinks: instance Data.Aeson.Types.ToJSON.ToJSON WithControlFlowReachableSinks.Features
+ WithControlFlowReachableSinks: instance Data.Aeson.Types.ToJSON.ToJSON WithControlFlowReachableSinks.Match
+ WithControlFlowReachableSinks: instance Data.Aeson.Types.ToJSON.ToJSON WithControlFlowReachableSinks.Sink
+ WithControlFlowReachableSinks: instance GHC.Internal.Classes.Eq WithControlFlowReachableSinks.Content
+ WithControlFlowReachableSinks: instance GHC.Internal.Classes.Eq WithControlFlowReachableSinks.Features
+ WithControlFlowReachableSinks: instance GHC.Internal.Classes.Eq WithControlFlowReachableSinks.Match
+ WithControlFlowReachableSinks: instance GHC.Internal.Classes.Eq WithControlFlowReachableSinks.Sink
+ WithControlFlowReachableSinks: instance GHC.Internal.Classes.Ord WithControlFlowReachableSinks.Content
+ WithControlFlowReachableSinks: instance GHC.Internal.Classes.Ord WithControlFlowReachableSinks.Features
+ WithControlFlowReachableSinks: instance GHC.Internal.Classes.Ord WithControlFlowReachableSinks.Match
+ WithControlFlowReachableSinks: instance GHC.Internal.Classes.Ord WithControlFlowReachableSinks.Sink
+ WithControlFlowReachableSinks: instance GHC.Internal.Generics.Generic WithControlFlowReachableSinks.Content
+ WithControlFlowReachableSinks: instance GHC.Internal.Generics.Generic WithControlFlowReachableSinks.Features
+ WithControlFlowReachableSinks: instance GHC.Internal.Generics.Generic WithControlFlowReachableSinks.Match
+ WithControlFlowReachableSinks: instance GHC.Internal.Generics.Generic WithControlFlowReachableSinks.Sink
+ WithControlFlowReachableSinks: instance GHC.Internal.Show.Show WithControlFlowReachableSinks.Content
+ WithControlFlowReachableSinks: instance GHC.Internal.Show.Show WithControlFlowReachableSinks.Features
+ WithControlFlowReachableSinks: instance GHC.Internal.Show.Show WithControlFlowReachableSinks.Match
+ WithControlFlowReachableSinks: instance GHC.Internal.Show.Show WithControlFlowReachableSinks.Sink
+ WithDataFlowPath: Content :: Maybe [Location] -> Content
+ WithDataFlowPath: Features :: Location -> Location -> Word -> Word -> Features
+ WithDataFlowPath: [from] :: Features -> Location
+ WithDataFlowPath: [maxNumInterProceduralEdges] :: Features -> Word
+ WithDataFlowPath: [maxNumIntraProceduralEdges] :: Features -> Word
+ WithDataFlowPath: [path] :: Content -> Maybe [Location]
+ WithDataFlowPath: [to] :: Features -> Location
+ WithDataFlowPath: data Content
+ WithDataFlowPath: data Features
+ WithDataFlowPath: instance Data.Aeson.Types.FromJSON.FromJSON WithDataFlowPath.Content
+ WithDataFlowPath: instance Data.Aeson.Types.FromJSON.FromJSON WithDataFlowPath.Features
+ WithDataFlowPath: instance Data.Aeson.Types.ToJSON.ToJSON WithDataFlowPath.Content
+ WithDataFlowPath: instance Data.Aeson.Types.ToJSON.ToJSON WithDataFlowPath.Features
+ WithDataFlowPath: instance GHC.Internal.Classes.Eq WithDataFlowPath.Content
+ WithDataFlowPath: instance GHC.Internal.Classes.Eq WithDataFlowPath.Features
+ WithDataFlowPath: instance GHC.Internal.Classes.Ord WithDataFlowPath.Content
+ WithDataFlowPath: instance GHC.Internal.Classes.Ord WithDataFlowPath.Features
+ WithDataFlowPath: instance GHC.Internal.Generics.Generic WithDataFlowPath.Content
+ WithDataFlowPath: instance GHC.Internal.Generics.Generic WithDataFlowPath.Features
+ WithDataFlowPath: instance GHC.Internal.Show.Show WithDataFlowPath.Content
+ WithDataFlowPath: instance GHC.Internal.Show.Show WithDataFlowPath.Features
+ WithHttpHandlers: AnonymousFunction :: HttpHandlerDef
+ WithHttpHandlers: Authenticated :: AuthFilter
+ WithHttpHandlers: Authentication :: String -> AuthEvidence -> Authentication
+ WithHttpHandlers: ByAllButOneBadReturn :: AuthEvidence
+ WithHttpHandlers: ByHeaderNullCheck :: String -> AuthEvidence
+ WithHttpHandlers: ClassName :: String -> ClassName
+ WithHttpHandlers: Content :: Word -> [HttpHandler] -> Content
+ WithHttpHandlers: CookieValue :: Location -> CookieValue
+ WithHttpHandlers: CookieValueCtor :: CookieValue -> UserInput
+ WithHttpHandlers: Delete :: HttpVerb
+ WithHttpHandlers: Features :: Set HttpVerb -> Set AuthFilter -> Maybe [String] -> Word -> Features
+ WithHttpHandlers: FunctionName :: String -> FunctionName
+ WithHttpHandlers: Get :: HttpVerb
+ WithHttpHandlers: HttpHandler :: HttpVerb -> Location -> HttpHandlerDef -> String -> [UserInput] -> Maybe Authentication -> HttpHandler
+ WithHttpHandlers: MethodName :: String -> MethodName
+ WithHttpHandlers: MethodOfClass :: MethodName -> ClassName -> HttpHandlerDef
+ WithHttpHandlers: NamedFunction :: FunctionName -> HttpHandlerDef
+ WithHttpHandlers: Patch :: HttpVerb
+ WithHttpHandlers: PathVariable :: Location -> PathVariable
+ WithHttpHandlers: PathVariableCtor :: PathVariable -> UserInput
+ WithHttpHandlers: Post :: HttpVerb
+ WithHttpHandlers: Put :: HttpVerb
+ WithHttpHandlers: RequestBody :: Location -> RequestBody
+ WithHttpHandlers: RequestBodyCtor :: RequestBody -> UserInput
+ WithHttpHandlers: RequestHeader :: Location -> RequestHeader
+ WithHttpHandlers: RequestHeaderCtor :: RequestHeader -> UserInput
+ WithHttpHandlers: RequestObject :: Location -> RequestObject
+ WithHttpHandlers: RequestObjectCtor :: RequestObject -> UserInput
+ WithHttpHandlers: RequestParam :: String -> Location -> RequestParam
+ WithHttpHandlers: RequestParamCtor :: RequestParam -> UserInput
+ WithHttpHandlers: RequestPart :: Location -> RequestPart
+ WithHttpHandlers: RequestPartCtor :: RequestPart -> UserInput
+ WithHttpHandlers: Unauthenticated :: AuthFilter
+ WithHttpHandlers: [authenticationEvidence] :: Authentication -> AuthEvidence
+ WithHttpHandlers: [authenticationFunctionName] :: Authentication -> String
+ WithHttpHandlers: [authentications] :: Features -> Set AuthFilter
+ WithHttpHandlers: [httpHandlerAuth] :: HttpHandler -> Maybe Authentication
+ WithHttpHandlers: [httpHandlerDef] :: HttpHandler -> HttpHandlerDef
+ WithHttpHandlers: [httpHandlerLocation] :: HttpHandler -> Location
+ WithHttpHandlers: [httpHandlerUrl] :: HttpHandler -> String
+ WithHttpHandlers: [httpHandlerUserInputs] :: HttpHandler -> [UserInput]
+ WithHttpHandlers: [httpHandlerVerb] :: HttpHandler -> HttpVerb
+ WithHttpHandlers: [matches] :: Content -> [HttpHandler]
+ WithHttpHandlers: [maxNumHttpHandlers] :: Features -> Word
+ WithHttpHandlers: [requestParamLocation] :: RequestParam -> Location
+ WithHttpHandlers: [requestParamName] :: RequestParam -> String
+ WithHttpHandlers: [routeContainsUrlParts] :: Features -> Maybe [String]
+ WithHttpHandlers: [total] :: Content -> Word
+ WithHttpHandlers: [verbs] :: Features -> Set HttpVerb
+ WithHttpHandlers: data AuthEvidence
+ WithHttpHandlers: data AuthFilter
+ WithHttpHandlers: data Authentication
+ WithHttpHandlers: data ClassName
+ WithHttpHandlers: data Content
+ WithHttpHandlers: data CookieValue
+ WithHttpHandlers: data Features
+ WithHttpHandlers: data FunctionName
+ WithHttpHandlers: data HttpHandler
+ WithHttpHandlers: data HttpHandlerDef
+ WithHttpHandlers: data HttpVerb
+ WithHttpHandlers: data MethodName
+ WithHttpHandlers: data PathVariable
+ WithHttpHandlers: data RequestBody
+ WithHttpHandlers: data RequestHeader
+ WithHttpHandlers: data RequestObject
+ WithHttpHandlers: data RequestParam
+ WithHttpHandlers: data RequestPart
+ WithHttpHandlers: data UserInput
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.AuthEvidence
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.AuthFilter
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.Authentication
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.ClassName
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.Content
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.CookieValue
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.Features
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.FunctionName
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.HttpHandler
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.HttpHandlerDef
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.HttpVerb
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.MethodName
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.PathVariable
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.RequestBody
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.RequestHeader
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.RequestObject
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.RequestParam
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.RequestPart
+ WithHttpHandlers: instance Data.Aeson.Types.FromJSON.FromJSON WithHttpHandlers.UserInput
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.AuthEvidence
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.AuthFilter
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.Authentication
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.ClassName
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.Content
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.CookieValue
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.Features
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.FunctionName
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.HttpHandler
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.HttpHandlerDef
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.HttpVerb
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.MethodName
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.PathVariable
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.RequestBody
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.RequestHeader
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.RequestObject
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.RequestParam
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.RequestPart
+ WithHttpHandlers: instance Data.Aeson.Types.ToJSON.ToJSON WithHttpHandlers.UserInput
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.AuthEvidence
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.AuthFilter
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.Authentication
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.ClassName
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.Content
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.CookieValue
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.Features
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.FunctionName
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.HttpHandler
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.HttpHandlerDef
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.HttpVerb
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.MethodName
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.PathVariable
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.RequestBody
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.RequestHeader
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.RequestObject
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.RequestParam
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.RequestPart
+ WithHttpHandlers: instance GHC.Internal.Classes.Eq WithHttpHandlers.UserInput
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.AuthEvidence
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.AuthFilter
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.Authentication
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.ClassName
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.Content
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.CookieValue
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.Features
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.FunctionName
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.HttpHandler
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.HttpHandlerDef
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.HttpVerb
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.MethodName
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.PathVariable
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.RequestBody
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.RequestHeader
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.RequestObject
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.RequestParam
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.RequestPart
+ WithHttpHandlers: instance GHC.Internal.Classes.Ord WithHttpHandlers.UserInput
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.AuthEvidence
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.AuthFilter
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.Authentication
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.ClassName
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.Content
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.CookieValue
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.Features
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.FunctionName
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.HttpHandler
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.HttpHandlerDef
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.HttpVerb
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.MethodName
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.PathVariable
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.RequestBody
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.RequestHeader
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.RequestObject
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.RequestParam
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.RequestPart
+ WithHttpHandlers: instance GHC.Internal.Generics.Generic WithHttpHandlers.UserInput
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.AuthEvidence
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.AuthFilter
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.Authentication
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.ClassName
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.Content
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.CookieValue
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.Features
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.FunctionName
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.HttpHandler
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.HttpHandlerDef
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.HttpVerb
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.MethodName
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.PathVariable
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.RequestBody
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.RequestHeader
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.RequestObject
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.RequestParam
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.RequestPart
+ WithHttpHandlers: instance GHC.Internal.Show.Show WithHttpHandlers.UserInput
+ WithSanitizers: Content :: Word -> [Sanitizer] -> Content
+ WithSanitizers: Features :: Location -> Location -> Word -> Features
+ WithSanitizers: FlowStep :: Location -> Maybe String -> FlowStep
+ WithSanitizers: IfThenElse :: PartCall -> Word -> [FlowStep] -> [PartCall] -> [PartCall] -> IfThenElse
+ WithSanitizers: PartCall :: Location -> Maybe String -> [String] -> PartCall
+ WithSanitizers: TopLevelIfThenElse :: IfThenElse -> Sanitizer
+ WithSanitizers: [cond] :: IfThenElse -> PartCall
+ WithSanitizers: [constStringArgs] :: PartCall -> [String]
+ WithSanitizers: [elsePart] :: IfThenElse -> [PartCall]
+ WithSanitizers: [flowStepLocation] :: FlowStep -> Location
+ WithSanitizers: [flowStepQualifiedName] :: FlowStep -> Maybe String
+ WithSanitizers: [location] :: PartCall -> Location
+ WithSanitizers: [matches] :: Content -> [Sanitizer]
+ WithSanitizers: [maxNumSanitizers] :: Features -> Word
+ WithSanitizers: [qualifiedName] :: PartCall -> Maybe String
+ WithSanitizers: [sink] :: Features -> Location
+ WithSanitizers: [thenPart] :: IfThenElse -> [PartCall]
+ WithSanitizers: [total] :: Content -> Word
+ WithSanitizers: [userInputArgIndex] :: IfThenElse -> Word
+ WithSanitizers: [userInputFlow] :: IfThenElse -> [FlowStep]
+ WithSanitizers: [userInput] :: Features -> Location
+ WithSanitizers: data Content
+ WithSanitizers: data Features
+ WithSanitizers: data FlowStep
+ WithSanitizers: data IfThenElse
+ WithSanitizers: data PartCall
+ WithSanitizers: data Sanitizer
+ WithSanitizers: instance Data.Aeson.Types.FromJSON.FromJSON WithSanitizers.Content
+ WithSanitizers: instance Data.Aeson.Types.FromJSON.FromJSON WithSanitizers.Features
+ WithSanitizers: instance Data.Aeson.Types.FromJSON.FromJSON WithSanitizers.FlowStep
+ WithSanitizers: instance Data.Aeson.Types.FromJSON.FromJSON WithSanitizers.IfThenElse
+ WithSanitizers: instance Data.Aeson.Types.FromJSON.FromJSON WithSanitizers.PartCall
+ WithSanitizers: instance Data.Aeson.Types.FromJSON.FromJSON WithSanitizers.Sanitizer
+ WithSanitizers: instance Data.Aeson.Types.ToJSON.ToJSON WithSanitizers.Content
+ WithSanitizers: instance Data.Aeson.Types.ToJSON.ToJSON WithSanitizers.Features
+ WithSanitizers: instance Data.Aeson.Types.ToJSON.ToJSON WithSanitizers.FlowStep
+ WithSanitizers: instance Data.Aeson.Types.ToJSON.ToJSON WithSanitizers.IfThenElse
+ WithSanitizers: instance Data.Aeson.Types.ToJSON.ToJSON WithSanitizers.PartCall
+ WithSanitizers: instance Data.Aeson.Types.ToJSON.ToJSON WithSanitizers.Sanitizer
+ WithSanitizers: instance GHC.Internal.Classes.Eq WithSanitizers.Content
+ WithSanitizers: instance GHC.Internal.Classes.Eq WithSanitizers.Features
+ WithSanitizers: instance GHC.Internal.Classes.Eq WithSanitizers.FlowStep
+ WithSanitizers: instance GHC.Internal.Classes.Eq WithSanitizers.IfThenElse
+ WithSanitizers: instance GHC.Internal.Classes.Eq WithSanitizers.PartCall
+ WithSanitizers: instance GHC.Internal.Classes.Eq WithSanitizers.Sanitizer
+ WithSanitizers: instance GHC.Internal.Classes.Ord WithSanitizers.Content
+ WithSanitizers: instance GHC.Internal.Classes.Ord WithSanitizers.Features
+ WithSanitizers: instance GHC.Internal.Classes.Ord WithSanitizers.FlowStep
+ WithSanitizers: instance GHC.Internal.Classes.Ord WithSanitizers.IfThenElse
+ WithSanitizers: instance GHC.Internal.Classes.Ord WithSanitizers.PartCall
+ WithSanitizers: instance GHC.Internal.Classes.Ord WithSanitizers.Sanitizer
+ WithSanitizers: instance GHC.Internal.Generics.Generic WithSanitizers.Content
+ WithSanitizers: instance GHC.Internal.Generics.Generic WithSanitizers.Features
+ WithSanitizers: instance GHC.Internal.Generics.Generic WithSanitizers.FlowStep
+ WithSanitizers: instance GHC.Internal.Generics.Generic WithSanitizers.IfThenElse
+ WithSanitizers: instance GHC.Internal.Generics.Generic WithSanitizers.PartCall
+ WithSanitizers: instance GHC.Internal.Generics.Generic WithSanitizers.Sanitizer
+ WithSanitizers: instance GHC.Internal.Show.Show WithSanitizers.Content
+ WithSanitizers: instance GHC.Internal.Show.Show WithSanitizers.Features
+ WithSanitizers: instance GHC.Internal.Show.Show WithSanitizers.FlowStep
+ WithSanitizers: instance GHC.Internal.Show.Show WithSanitizers.IfThenElse
+ WithSanitizers: instance GHC.Internal.Show.Show WithSanitizers.PartCall
+ WithSanitizers: instance GHC.Internal.Show.Show WithSanitizers.Sanitizer
- Kbapi: FoundCommentsInFunction :: FoundCommentsInFunction -> QueryResult
+ Kbapi: FoundCommentsInFunction :: Content -> QueryResult
- Kbapi: FoundConstStringsMatching :: FoundConstStringsMatching -> QueryResult
+ Kbapi: FoundConstStringsMatching :: Content -> QueryResult
- Kbapi: FoundDataFlowPath :: FoundDataFlowPath -> QueryResult
+ Kbapi: FoundDataFlowPath :: Content -> QueryResult

Files

dhscanner-kbapi.cabal view
@@ -28,7 +28,7 @@     fundamental modifications to the structure or specification     of code facts. -version:            1.1.4+version:            1.2.0 license:            GPL-3.0-only license-file:       LICENSE author:             OrenGitHub@@ -49,7 +49,12 @@      exposed-modules:         Kbapi,-        Content+        WithHttpHandlers,+        WithControlFlowReachableSinks,+        WithConstStrings,+        WithComments,+        WithDataFlowPath,+        WithSanitizers      build-depends:         aeson >= 2.2 && < 2.4,
json-schema-creator/Main.hs view
@@ -9,7 +9,8 @@  -- general imports import Data.Proxy ( Proxy(..) )-import Data.OpenApi ( ToSchema, toSchema, declareSchemaRef )+import Data.OpenApi ( ToSchema(..), SchemaOptions(..), NamedSchema(..), toSchema, declareSchemaRef, defaultSchemaOptions, genericDeclareNamedSchema )+import GHC.Generics ( Generic ) import Data.OpenApi.Declare ( runDeclare ) import Data.Aeson ( Value(..), toJSON, object, (.=) ) import Data.Aeson.Encode.Pretty ( encodePretty )@@ -19,69 +20,80 @@ import qualified Data.ByteString.Lazy as BL  -- project imports-import Content import Location import Kbapi ( Query, QueryResult ) +-- project qualified imports+import qualified WithHttpHandlers+import qualified WithControlFlowReachableSinks+import qualified WithConstStrings+import qualified WithComments+import qualified WithDataFlowPath+import qualified WithSanitizers++-- every query module names its type Features : qualify the schema name+qualifiedAs :: String -> SchemaOptions+qualifiedAs m = defaultSchemaOptions { datatypeNameModifier = ((m ++ ".") ++) }+ instance ToSchema Query instance ToSchema QueryResult  instance ToSchema Location -instance ToSchema ConstStringsMatching-instance ToSchema FoundConstStringsMatching-instance ToSchema FoundConstStringMatch--instance ToSchema AuthEvidence--instance ToSchema UnauthenticatedHttpPostHandlerRequestObject-instance ToSchema FoundUnauthenticatedHttpPostHandlerRequestObject-instance ToSchema AuthenticatedHttpPostHandlerRequestObject-instance ToSchema FoundAuthenticatedHttpPostHandlerRequestObject-instance ToSchema FoundAuthenticatedHttpPostHandlerRequestObjectMatch-instance ToSchema FoundHttpPostHandlerRequestObjectMatch--instance ToSchema HttpGetHandlerRequestObject-instance ToSchema FoundHttpGetHandlerRequestObject-instance ToSchema FoundHttpGetHandlerRequestObjectMatch+instance ToSchema WithHttpHandlers.Features where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithHttpHandlers")+instance ToSchema WithHttpHandlers.HttpVerb+instance ToSchema WithHttpHandlers.AuthFilter+instance ToSchema WithHttpHandlers.Content where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithHttpHandlers")+instance ToSchema WithHttpHandlers.HttpHandler+instance ToSchema WithHttpHandlers.HttpHandlerDef+instance ToSchema WithHttpHandlers.MethodName+instance ToSchema WithHttpHandlers.ClassName+instance ToSchema WithHttpHandlers.FunctionName+instance ToSchema WithHttpHandlers.UserInput+instance ToSchema WithHttpHandlers.RequestObject+instance ToSchema WithHttpHandlers.RequestParam+instance ToSchema WithHttpHandlers.PathVariable+instance ToSchema WithHttpHandlers.RequestBody+instance ToSchema WithHttpHandlers.RequestHeader+instance ToSchema WithHttpHandlers.CookieValue+instance ToSchema WithHttpHandlers.RequestPart+instance ToSchema WithHttpHandlers.Authentication+instance ToSchema WithHttpHandlers.AuthEvidence -instance ToSchema UnauthenticatedHttpGetHandlerRequestObject-instance ToSchema FoundUnauthenticatedHttpGetHandlerRequestObject-instance ToSchema AuthenticatedHttpGetHandlerRequestObject-instance ToSchema FoundAuthenticatedHttpGetHandlerRequestObject-instance ToSchema FoundAuthenticatedHttpGetHandlerRequestObjectMatch+instance ToSchema WithControlFlowReachableSinks.Features where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithControlFlowReachableSinks")+instance ToSchema WithControlFlowReachableSinks.Sink+instance ToSchema WithControlFlowReachableSinks.Content where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithControlFlowReachableSinks")+instance ToSchema WithControlFlowReachableSinks.Match where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithControlFlowReachableSinks") -instance ToSchema UnauthenticatedHttpPutHandlerRequestObject-instance ToSchema FoundUnauthenticatedHttpPutHandlerRequestObject-instance ToSchema AuthenticatedHttpPutHandlerRequestObject-instance ToSchema FoundAuthenticatedHttpPutHandlerRequestObject-instance ToSchema FoundAuthenticatedHttpPutHandlerRequestObjectMatch-instance ToSchema FoundHttpPutHandlerRequestObjectMatch+instance ToSchema WithConstStrings.Features where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithConstStrings")+instance ToSchema WithConstStrings.Content where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithConstStrings")+instance ToSchema WithConstStrings.Match where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithConstStrings") -instance ToSchema CommentsInFunction-instance ToSchema FoundCommentsInFunction-instance ToSchema Comment+instance ToSchema WithComments.Features where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithComments")+instance ToSchema WithComments.Content where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithComments")+instance ToSchema WithComments.Comment -instance ToSchema WriteContentToLocalFile-instance ToSchema FoundWriteContentToLocalFile+instance ToSchema WithDataFlowPath.Features where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithDataFlowPath")+instance ToSchema WithDataFlowPath.Content where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithDataFlowPath") -instance ToSchema ControlFlowPath-instance ToSchema FoundControlFlowPath+instance ToSchema WithSanitizers.Features where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithSanitizers")+instance ToSchema WithSanitizers.Content where declareNamedSchema = genericDeclareNamedSchema (qualifiedAs "WithSanitizers")+instance ToSchema WithSanitizers.IfThenElse+instance ToSchema WithSanitizers.PartCall+instance ToSchema WithSanitizers.FlowStep -instance ToSchema DataFlowPath-instance ToSchema FoundDataFlowPath+-- openapi3 ignores tagSingleConstructors : describe the tagged Sanitizer+-- through a mirror ( drop it once Sanitizer has a second constructor )+data SanitizerTag = TopLevelIfThenElse deriving ( Generic )+data SanitizerMirror = SanitizerMirror { tag :: SanitizerTag, contents :: WithSanitizers.IfThenElse } deriving ( Generic ) -instance ToSchema SqlSinkKind-instance ToSchema SqlSinkKindCount-instance ToSchema ControlFlowReachableSqlSink-instance ToSchema FoundControlFlowReachableSqlSink-instance ToSchema FoundControlFlowReachableSqlSinkMatch+instance ToSchema SanitizerTag+instance ToSchema SanitizerMirror -instance ToSchema FileActionKind-instance ToSchema FileActionKindCount-instance ToSchema ControlFlowReachableFileActionSink-instance ToSchema FoundControlFlowReachableFileActionSink-instance ToSchema FoundControlFlowReachableFileActionSinkMatch+instance ToSchema WithSanitizers.Sanitizer where+    declareNamedSchema _ = do+        NamedSchema _ s <- declareNamedSchema (Proxy :: Proxy SanitizerMirror)+        pure (NamedSchema (Just "Sanitizer") s)  schemaWithDefs :: ToSchema a => Proxy a -> Value schemaWithDefs p =
− src/Content.hs
@@ -1,558 +0,0 @@-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE DeriveAnyClass #-}--module Content--where---- general imports-import GHC.Generics-import Data.Aeson--- project imports-import Location--data ConstStringsMatching-   = ConstStringsMatching-     {-         constStringsMatchingThisRegex :: String,-         constStringsMatchingLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundConstStringsMatching-   = FoundConstStringsMatching-     {-         foundConstStringsMatchingThisRegex :: String,-         foundConstStringsMatchesTotal :: Word,-         foundConstStringsMatches :: [ FoundConstStringMatch ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundConstStringMatch-   = FoundConstStringMatch-     {-         foundConstStringMatchLocation :: Location,-         foundConstStringMatchValue :: String-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data UnauthenticatedHttpPostHandlerRequestObject-   = UnauthenticatedHttpPostHandlerRequestObject-     {-         unauthenticatedHttpPostHandlerRequestObjectUrlParts :: [ String ],-         unauthenticatedHttpPostHandlerRequestObjectLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundUnauthenticatedHttpPostHandlerRequestObject-   = FoundUnauthenticatedHttpPostHandlerRequestObject-     {-         foundUnauthenticatedHttpPostHandlerRequestObjectTotal :: Word,-         foundUnauthenticatedHttpPostHandlerRequestObjectMatches :: [ FoundHttpPostHandlerRequestObjectMatch ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data AuthenticatedHttpPostHandlerRequestObject-   = AuthenticatedHttpPostHandlerRequestObject-     {-         authenticatedHttpPostHandlerRequestObjectUrlParts :: [ String ],-         authenticatedHttpPostHandlerRequestObjectLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundAuthenticatedHttpPostHandlerRequestObject-   = FoundAuthenticatedHttpPostHandlerRequestObject-     {-         foundAuthenticatedHttpPostHandlerRequestObjectTotal :: Word,-         foundAuthenticatedHttpPostHandlerRequestObjectMatches :: [ FoundAuthenticatedHttpPostHandlerRequestObjectMatch ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Evidence carrier for authenticated-handler classifications.------ Same "one concept, N payload shapes" tagged-union pattern that--- 'Kbapi.Query' itself uses. Each constructor names a distinct--- structural recognition path in the KB and carries whatever--- payload that path can bind. New auth mechanisms are pure leaf--- additions here : add a constructor + a matching Prolog clause--- + one line in the queryengine decoder \- no existing consumer--- changes.------ Current constructors :------ * @ByHeaderNullCheck HeaderKey@ \- the authenticating function---   implements the strict @Request.headers.get( key ) ; if(!v)---   return null@ idiom. @HeaderKey@ is the header name string---   ( e.g. @\"x-api-key\"@ ). Bound by the KB rule---   @utils_early_return_null_on_missing_request_header_value@.------ * @ByAllButOneBadReturn@ \- the authenticating function's body---   shape is "K-1 bad-http returns + 1 parser-injected fall-through" :---   every failing path emits an error response, the single success---   path falls through implicitly. No payload \- the evidence /is/---   the shape, and the callable\'s name is already carried by---   @foundAuthenticatedHttpPostHandlerAuthenticatingFunctionName@---   ( or its GET twin ) on the enclosing match record.-data AuthEvidence-   = ByHeaderNullCheck String-   | ByAllButOneBadReturn-   deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | A match for an authenticated POST handler request object query.------ Same shape as 'FoundHttpPostHandlerRequestObjectMatch', plus two--- structurally discovered pieces of metadata that identify /how/ the--- handler is authenticated :------ * @foundAuthenticatedHttpPostHandlerAuthenticatingFunctionName@ \----   the name of the callable that gates the handler ( e.g. tier-1---   catalog name @\'authenticateRequest\'@, or @\'checkAuth\'@ when---   the shape catalog fires ).------ * @foundAuthenticatedHttpPostHandlerAuthEvidence@ \----   an 'AuthEvidence' tagged union describing /which/ structural---   recognition path bound this match, plus any mechanism-specific---   payload ( e.g. the header key for @ByHeaderNullCheck@ ). See the---   'AuthEvidence' haddock for the current constructors.-data FoundAuthenticatedHttpPostHandlerRequestObjectMatch-   = FoundAuthenticatedHttpPostHandlerRequestObjectMatch-     {-         foundAuthenticatedHttpPostHandlerLocation :: Location,-         foundAuthenticatedHttpPostHandlerRequestObjectLocation :: Location,-         foundAuthenticatedHttpPostHandlerRequestObjectMatchUrl :: String,-         foundAuthenticatedHttpPostHandlerAuthenticatingFunctionName :: String,-         foundAuthenticatedHttpPostHandlerAuthEvidence :: AuthEvidence-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundHttpPostHandlerRequestObjectMatch-   = FoundHttpPostHandlerRequestObjectMatch-     {-         foundHttpPostHandlerLocation :: Location,-         foundHttpPostHandlerRequestObjectLocation :: Location,-         foundHttpPostHandlerRequestObjectMatchUrl :: String-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data HttpGetHandlerRequestObject-   = HttpGetHandlerRequestObject-     {-         httpGetHandlerRequestObjectUrlParts :: [ String ],-         httpGetHandlerRequestObjectLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundHttpGetHandlerRequestObject-   = FoundHttpGetHandlerRequestObject-     {-         foundHttpGetHandlerRequestObjectTotal :: Word,-         foundHttpGetHandlerRequestObjectMatches :: [ FoundHttpGetHandlerRequestObjectMatch ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundHttpGetHandlerRequestObjectMatch-   = FoundHttpGetHandlerRequestObjectMatch-     {-         foundHttpGetHandlerLocation :: Location,-         foundHttpGetHandlerRequestObjectMatchLocation :: Location,-         foundHttpGetHandlerRequestObjectMatchUrl :: String-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Symmetric GET variant of 'UnauthenticatedHttpPostHandlerRequestObject'.--- Enumerates HTTP GET handlers whose bodies contain /no/ call to any--- recognized authenticating function (per the Prolog predicate--- @utils_unauthenticated_http_get_handler_request_object/3@ ).------ Together with 'AuthenticatedHttpGetHandlerRequestObject' this is the--- GET half of the "first fork" the LLM agent hits : auth vs pre-auth--- endpoints. See the OWASP-IL 2026 talk notes ("first move" bridge--- slide) for the harness-side story.-data UnauthenticatedHttpGetHandlerRequestObject-   = UnauthenticatedHttpGetHandlerRequestObject-     {-         unauthenticatedHttpGetHandlerRequestObjectUrlParts :: [ String ],-         unauthenticatedHttpGetHandlerRequestObjectLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Result payload for 'UnauthenticatedHttpGetHandlerRequestObject'. The--- per-match shape reuses 'FoundHttpGetHandlerRequestObjectMatch' because--- an unauthenticated GET handler carries no auth metadata to surface ----- symmetric to how 'FoundUnauthenticatedHttpPostHandlerRequestObject'--- reuses 'FoundHttpPostHandlerRequestObjectMatch'.-data FoundUnauthenticatedHttpGetHandlerRequestObject-   = FoundUnauthenticatedHttpGetHandlerRequestObject-     {-         foundUnauthenticatedHttpGetHandlerRequestObjectTotal :: Word,-         foundUnauthenticatedHttpGetHandlerRequestObjectMatches :: [ FoundHttpGetHandlerRequestObjectMatch ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Symmetric GET variant of 'AuthenticatedHttpPostHandlerRequestObject'.--- Enumerates HTTP GET handlers whose bodies contain a call to a--- recognized authenticating function that itself satisfies the strict--- "early-return-null on missing request-header value" structural gate.--- See @utils_authenticated_http_get_handler_request_object/5@ in--- utils.pl and the Prolog-side notes on the corresponding POST /5--- predicate.-data AuthenticatedHttpGetHandlerRequestObject-   = AuthenticatedHttpGetHandlerRequestObject-     {-         authenticatedHttpGetHandlerRequestObjectUrlParts :: [ String ],-         authenticatedHttpGetHandlerRequestObjectLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundAuthenticatedHttpGetHandlerRequestObject-   = FoundAuthenticatedHttpGetHandlerRequestObject-     {-         foundAuthenticatedHttpGetHandlerRequestObjectTotal :: Word,-         foundAuthenticatedHttpGetHandlerRequestObjectMatches :: [ FoundAuthenticatedHttpGetHandlerRequestObjectMatch ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | A match for an authenticated GET handler request object query. Same--- shape as 'FoundAuthenticatedHttpPostHandlerRequestObjectMatch', with--- @GetHandler@ substituted for @PostHandler@ throughout the field--- naming to keep POST/GET results distinguishable at the JSON layer.-data FoundAuthenticatedHttpGetHandlerRequestObjectMatch-   = FoundAuthenticatedHttpGetHandlerRequestObjectMatch-     {-         foundAuthenticatedHttpGetHandlerLocation :: Location,-         foundAuthenticatedHttpGetHandlerRequestObjectLocation :: Location,-         foundAuthenticatedHttpGetHandlerRequestObjectMatchUrl :: String,-         foundAuthenticatedHttpGetHandlerAuthenticatingFunctionName :: String,-         foundAuthenticatedHttpGetHandlerAuthEvidence :: AuthEvidence-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Symmetric PUT variant of 'UnauthenticatedHttpPostHandlerRequestObject'.--- Enumerates HTTP PUT handlers whose bodies contain /no/ call to any--- recognized authenticating function.------ Adding any other HTTP verb ( PATCH, DELETE, HEAD, OPTIONS, ... ) is--- a pure leaf addition : mirror this block, add a new Query--- constructor + a new KB-side clause + a new queryengine handler.--- No existing consumer needs to change.-data UnauthenticatedHttpPutHandlerRequestObject-   = UnauthenticatedHttpPutHandlerRequestObject-     {-         unauthenticatedHttpPutHandlerRequestObjectUrlParts :: [ String ],-         unauthenticatedHttpPutHandlerRequestObjectLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Result payload for 'UnauthenticatedHttpPutHandlerRequestObject'.--- Reuses 'FoundHttpPutHandlerRequestObjectMatch' because an--- unauthenticated PUT handler carries no auth metadata to surface ----- symmetric to how 'FoundUnauthenticatedHttpPostHandlerRequestObject'--- reuses 'FoundHttpPostHandlerRequestObjectMatch'.-data FoundUnauthenticatedHttpPutHandlerRequestObject-   = FoundUnauthenticatedHttpPutHandlerRequestObject-     {-         foundUnauthenticatedHttpPutHandlerRequestObjectTotal :: Word,-         foundUnauthenticatedHttpPutHandlerRequestObjectMatches :: [ FoundHttpPutHandlerRequestObjectMatch ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Symmetric PUT variant of 'AuthenticatedHttpPostHandlerRequestObject'.--- Same @AuthEvidence@ catalog + @AuthFuncName@ metadata as the POST--- twin; see the POST record's haddock for the tagged-union rationale.-data AuthenticatedHttpPutHandlerRequestObject-   = AuthenticatedHttpPutHandlerRequestObject-     {-         authenticatedHttpPutHandlerRequestObjectUrlParts :: [ String ],-         authenticatedHttpPutHandlerRequestObjectLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundAuthenticatedHttpPutHandlerRequestObject-   = FoundAuthenticatedHttpPutHandlerRequestObject-     {-         foundAuthenticatedHttpPutHandlerRequestObjectTotal :: Word,-         foundAuthenticatedHttpPutHandlerRequestObjectMatches :: [ FoundAuthenticatedHttpPutHandlerRequestObjectMatch ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | A match for an authenticated PUT handler request object query. Same--- shape as 'FoundAuthenticatedHttpPostHandlerRequestObjectMatch', with--- @PutHandler@ substituted for @PostHandler@ throughout the field--- naming to keep POST/GET/PUT results distinguishable at the JSON layer.-data FoundAuthenticatedHttpPutHandlerRequestObjectMatch-   = FoundAuthenticatedHttpPutHandlerRequestObjectMatch-     {-         foundAuthenticatedHttpPutHandlerLocation :: Location,-         foundAuthenticatedHttpPutHandlerRequestObjectLocation :: Location,-         foundAuthenticatedHttpPutHandlerRequestObjectMatchUrl :: String,-         foundAuthenticatedHttpPutHandlerAuthenticatingFunctionName :: String,-         foundAuthenticatedHttpPutHandlerAuthEvidence :: AuthEvidence-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | A match for an ( unauthenticated ) PUT handler request object query.--- Same shape as 'FoundHttpPostHandlerRequestObjectMatch', with--- @PutHandler@ substituted for @PostHandler@ throughout the field--- naming to keep POST/PUT results distinguishable at the JSON layer.-data FoundHttpPutHandlerRequestObjectMatch-   = FoundHttpPutHandlerRequestObjectMatch-     {-         foundHttpPutHandlerLocation :: Location,-         foundHttpPutHandlerRequestObjectLocation :: Location,-         foundHttpPutHandlerRequestObjectMatchUrl :: String-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data CommentsInFunction-   = CommentsInFunction-     {-         commentsInFunctionLocation :: Location,-         commentsInFunctionLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundCommentsInFunction-   = FoundCommentsInFunction-     {-         foundCommentsInFunctionLocation :: Location,-         foundCommentsInFunctionTotal :: Word,-         foundCommentsInFunctionComments :: [ Comment ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data Comment-   = Comment-     {-         commentLocation :: Location,-         commentContent :: String-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data WriteContentToLocalFile-   = WriteContentToLocalFile-     {-         writeContentToLocalFileLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundWriteContentToLocalFile-   = FoundWriteContentToLocalFile-     {-         foundWriteContentToLocalFileTotal :: Word,-         foundWriteContentToLocalFileLocations :: [ Location ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data ControlFlowPath-   = ControlFlowPath-     {-         controlFlowPathCaller :: Location,-         controlFlowPathCallee :: Location,-         controlFlowPathLimitNumHops :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundControlFlowPath-   = FoundControlFlowPath-     {-         foundControlFlowPathPath :: Maybe [ Location ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data DataFlowPath-   = DataFlowPath-     {-         dataFlowPathFrom :: Location,-         dataFlowPathTo :: Location,-         dataFlowPathLimitLength :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )--data FoundDataFlowPath-   = FoundDataFlowPath-     {-         foundDataFlowPathPath :: Maybe [ Location ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Enumeration query \- SQL sinks control-flow-reachable from an--- entry point.------ Coarse tier of the coarse-to-fine reachability pipeline.--- Control-flow reachability is a /sound over-approximation/ of--- dataflow reachability under a sound call graph, which makes it--- suitable as a shortlist \- not as a citation. Callers that need--- to verify a specific sink is actually reached by attacker---- controlled input compose this query with a dataflow-path query--- on top.------ Enumeration ( sink side free ) rather than verification ( sink--- side bound ) is a deliberate shape choice : callers almost--- always want /the set/ of reachable sinks per entry point, not a--- per-site yes\/no. Per-site verification remains available via--- 'ControlFlowPath'.------ The result payload carries per-kind sub-totals--- ( 'SqlSinkKindCount' ) so callers can rank entry points by their--- sink profile without iterating the matches list.-data ControlFlowReachableSqlSink-   = ControlFlowReachableSqlSink-     {-         controlFlowReachableSqlSinkFrom :: Location,-         controlFlowReachableSqlSinkLimitNumHops :: Word,-         controlFlowReachableSqlSinkLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Structural classifier for a single SQL sink call site.------ Same \"one concept, N structural paths\" tagged-union pattern as--- 'AuthEvidence' : each constructor names a distinct sink shape a--- KB-side recognizer can classify against. Framework-agnostic \---- the same two shapes appear across every ORM \/ DB library. The--- concrete library name ( eg the resolved FQN of the sink call )--- is carried separately on each match as a plain string ; this--- classifier abstracts over it.------ Current constructors :------ * @SqlPreparedStatement@ \- the sink parameterizes caller input---   by construction ( bound parameters, ORM object-form APIs, ... ).---   Injection-safe under the library's contract ; no additional---   structural gate needed.------ * @SqlRaw@ \- the sink executes a caller-supplied SQL string.---   Injection risk lives on the caller ; additional structural---   gates ( eg proof that all interpolations are bound, or that---   the string is a compile-time constant ) are needed to clear it.------ Adding a new shape is a pure leaf addition here + a matching--- KB-side clause. No existing consumer needs to change.-data SqlSinkKind-   = SqlPreparedStatement-   | SqlRaw-   deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Per-kind sink count. Present in the enumeration payload as a--- pre-aggregated ranking signal. Every constructor of 'SqlSinkKind'--- is expected to appear in the payload's counts list ( zero-filled--- when absent ) so callers can direct-lookup without existence--- checks.-data SqlSinkKindCount-   = SqlSinkKindCount-     {-         sqlSinkKindCountKind :: SqlSinkKind,-         sqlSinkKindCountCount :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Result payload for 'ControlFlowReachableSqlSink'.------ @Total@ is the sum across all kinds ; @CountsByKind@ is the per-kind--- breakdown ( a pre-aggregated ranking signal ) ; @Matches@ is the--- flat list of individual sink call sites. Match ordering is--- implementation-defined \- callers that need a specific ordering--- should sort client-side on the fields exposed by--- 'FoundControlFlowReachableSqlSinkMatch'.-data FoundControlFlowReachableSqlSink-   = FoundControlFlowReachableSqlSink-     {-         foundControlFlowReachableSqlSinkTotal :: Word,-         foundControlFlowReachableSqlSinkCountsByKind :: [ SqlSinkKindCount ],-         foundControlFlowReachableSqlSinkMatches :: [ FoundControlFlowReachableSqlSinkMatch ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | A single reachable SQL sink match.------ Fields :------ * @Location@ \- the sink call site. Anchors downstream refinement---   ( eg a structural clearance predicate or a dataflow query ).------ * @QualifiedName@ \- the fully qualified name of the sink callee---   as a plain string ( a human-readable label for context ). Do---   not dispatch on it ; dispatch on @Kind@ so the structural---   classification stays authoritative. This is the naming---   convention future kbapi additions should follow for FQN-shaped---   string fields ; see the OWASP-IL talk notes for the---   \"Qualified Names\" pedagogical framing.------ * @Kind@ \- structural classifier bound by the KB-side recognizer.---   See 'SqlSinkKind' for the current catalog.-data FoundControlFlowReachableSqlSinkMatch-   = FoundControlFlowReachableSqlSinkMatch-     {-         foundControlFlowReachableSqlSinkMatchLocation :: Location,-         foundControlFlowReachableSqlSinkMatchQualifiedName :: String,-         foundControlFlowReachableSqlSinkMatchKind :: SqlSinkKind-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Enumeration query \- file-action sinks control-flow-reachable--- from an entry point. Symmetric to 'ControlFlowReachableSqlSink' ;--- see that record for the coarse-to-fine framing.-data ControlFlowReachableFileActionSink-   = ControlFlowReachableFileActionSink-     {-         controlFlowReachableFileActionSinkFrom :: Location,-         controlFlowReachableFileActionSinkLimitNumHops :: Word,-         controlFlowReachableFileActionSinkLimit :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Structural classifier for a single file-action sink call site.------ Same tagged-union pattern as 'SqlSinkKind' and 'AuthEvidence'.--- Framework-agnostic \- the same shapes appear across every--- filesystem API ( Node.js, Python, Go, Ruby, ... ). The concrete--- library name is carried separately on each match as a plain--- string ; this classifier abstracts over it.------ Current constructors :------ * @FileWrite@ \- content-writing sinks ( create \/ overwrite \/---   append file contents ).------ Reserved for future leaf additions :------ * @FileDelete@ \- removal sinks ( unlink \/ rmdir \/ recursive---   remove ).-data FileActionKind-   = FileWrite-   | FileRead-   | FileDelete-   deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Per-kind file-action sink count. Symmetric to 'SqlSinkKindCount'.-data FileActionKindCount-   = FileActionKindCount-     {-         fileActionKindCountKind :: FileActionKind,-         fileActionKindCountCount :: Word-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | Result payload for 'ControlFlowReachableFileActionSink'.--- Symmetric to 'FoundControlFlowReachableSqlSink' ; see that record--- for the field semantics.-data FoundControlFlowReachableFileActionSink-   = FoundControlFlowReachableFileActionSink-     {-         foundControlFlowReachableFileActionSinkTotal :: Word,-         foundControlFlowReachableFileActionSinkCountsByKind :: [ FileActionKindCount ],-         foundControlFlowReachableFileActionSinkMatches :: [ FoundControlFlowReachableFileActionSinkMatch ]-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )---- | A single reachable file-action sink match. Symmetric to--- 'FoundControlFlowReachableSqlSinkMatch' ; see that record for--- the field semantics.-data FoundControlFlowReachableFileActionSinkMatch-   = FoundControlFlowReachableFileActionSinkMatch-     {-         foundControlFlowReachableFileActionSinkMatchLocation :: Location,-         foundControlFlowReachableFileActionSinkMatchQualifiedName :: String,-         foundControlFlowReachableFileActionSinkMatchKind :: FileActionKind-     }-     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )
src/Kbapi.hs view
@@ -48,38 +48,27 @@ import GHC.Generics  -- project imports-import qualified Content+import qualified WithHttpHandlers+import qualified WithControlFlowReachableSinks+import qualified WithDataFlowPath+import qualified WithConstStrings+import qualified WithComments+import qualified WithSanitizers  data Query-   = ConstStringsMatching Content.ConstStringsMatching-   | HttpGetHandlerRequestObject Content.HttpGetHandlerRequestObject-   | UnauthenticatedHttpGetHandlerRequestObject Content.UnauthenticatedHttpGetHandlerRequestObject-   | AuthenticatedHttpGetHandlerRequestObject Content.AuthenticatedHttpGetHandlerRequestObject-   | UnauthenticatedHttpPostHandlerRequestObject Content.UnauthenticatedHttpPostHandlerRequestObject-   | AuthenticatedHttpPostHandlerRequestObject Content.AuthenticatedHttpPostHandlerRequestObject-   | UnauthenticatedHttpPutHandlerRequestObject Content.UnauthenticatedHttpPutHandlerRequestObject-   | AuthenticatedHttpPutHandlerRequestObject Content.AuthenticatedHttpPutHandlerRequestObject-   | CommentsInFunction Content.CommentsInFunction-   | WriteContentToLocalFile Content.WriteContentToLocalFile-   | ControlFlowPath Content.ControlFlowPath-   | DataFlowPath Content.DataFlowPath-   | ControlFlowReachableSqlSink Content.ControlFlowReachableSqlSink-   | ControlFlowReachableFileActionSink Content.ControlFlowReachableFileActionSink+   = SelectHttpHandlers WithHttpHandlers.Features+   | SelectControlFlowReachableSinks WithControlFlowReachableSinks.Features+   | SelectDataFlowPath WithDataFlowPath.Features+   | SelectConstStrings WithConstStrings.Features+   | SelectComments WithComments.Features+   | SelectSanitizers WithSanitizers.Features    deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )  data QueryResult-   = FoundConstStringsMatching Content.FoundConstStringsMatching-   | FoundHttpGetHandlerRequestObject Content.FoundHttpGetHandlerRequestObject-   | FoundUnauthenticatedHttpGetHandlerRequestObject Content.FoundUnauthenticatedHttpGetHandlerRequestObject-   | FoundAuthenticatedHttpGetHandlerRequestObject Content.FoundAuthenticatedHttpGetHandlerRequestObject-   | FoundUnauthenticatedHttpPostHandlerRequestObject Content.FoundUnauthenticatedHttpPostHandlerRequestObject-   | FoundAuthenticatedHttpPostHandlerRequestObject Content.FoundAuthenticatedHttpPostHandlerRequestObject-   | FoundUnauthenticatedHttpPutHandlerRequestObject Content.FoundUnauthenticatedHttpPutHandlerRequestObject-   | FoundAuthenticatedHttpPutHandlerRequestObject Content.FoundAuthenticatedHttpPutHandlerRequestObject-   | FoundCommentsInFunction Content.FoundCommentsInFunction-   | FoundWriteContentToLocalFile Content.FoundWriteContentToLocalFile-   | FoundControlFlowPath Content.FoundControlFlowPath-   | FoundDataFlowPath Content.FoundDataFlowPath-   | FoundControlFlowReachableSqlSink Content.FoundControlFlowReachableSqlSink-   | FoundControlFlowReachableFileActionSink Content.FoundControlFlowReachableFileActionSink+   = FoundHttpHandlers WithHttpHandlers.Content+   | FoundControlFlowReachableSinks WithControlFlowReachableSinks.Content+   | FoundConstStringsMatching WithConstStrings.Content+   | FoundCommentsInFunction WithComments.Content+   | FoundDataFlowPath WithDataFlowPath.Content+   | FoundSanitizers WithSanitizers.Content    deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )
+ src/WithComments.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveAnyClass #-}++module WithComments++where++-- general imports+import GHC.Generics+import Data.Aeson++-- project imports+import Location++data Features+   = Features+     {+        inFunction :: Location,+        maxNumComments :: Word+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Content+   = Content+     {+         total :: Word,+         matches :: [ Comment ]+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Comment+   = Comment+     {+         commentLocation :: Location,+         commentContent :: String+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )
+ src/WithConstStrings.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveAnyClass #-}++module WithConstStrings++where++-- general imports+import GHC.Generics+import Data.Aeson++-- project imports+import Location++data Features+   = Features+     {+        matchingRegex :: String,+        maxNumConstStrings :: Word+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Content+   = Content+     {+         total :: Word,+         matches :: [ Match ]+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Match+   = Match+     {+         location :: Location,+         value :: String+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )
+ src/WithControlFlowReachableSinks.hs view
@@ -0,0 +1,50 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveAnyClass #-}++module WithControlFlowReachableSinks++where++-- general imports+import GHC.Generics+import Data.Aeson+import Data.Set ( Set )++-- project imports+import Location++data Features+   = Features+     {+        from :: Location,+        sinks :: Set Sink,+        maxNumHops :: Word,+        maxNumSinks :: Word+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Sink+   = FileOperationRead+   | FileOperationWrite+   | FileOperationDelete+   | OpenRedirect+   | SSRF+   | SQL+   deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Content+   = Content+     {+        total :: Word,+        matches :: [ Match ]+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Match+   = Match+     {+        location :: Location,+        qualifiedName :: String,+        kind :: Sink+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )
+ src/WithDataFlowPath.hs view
@@ -0,0 +1,30 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveAnyClass #-}++module WithDataFlowPath++where++-- general imports+import GHC.Generics+import Data.Aeson++-- project imports+import Location++data Features+   = Features+     {+        from :: Location,+        to :: Location,+        maxNumIntraProceduralEdges :: Word,+        maxNumInterProceduralEdges :: Word+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Content+   = Content+     {+         path :: Maybe [ Location ]+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )
+ src/WithHttpHandlers.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveAnyClass #-}++module WithHttpHandlers++where++-- general imports+import GHC.Generics+import Data.Aeson+import Data.Set ( Set )++-- project imports+import Location++data Features+   = Features+     {+        verbs :: Set HttpVerb,+        authentications :: Set AuthFilter,+        routeContainsUrlParts :: Maybe [ String ], -- ^ Nothing = don't filter+        maxNumHttpHandlers :: Word+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data HttpVerb = Get | Post | Put | Delete | Patch+   deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data AuthFilter = Unauthenticated | Authenticated+   deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Content+   = Content+     {+         total :: Word,+         matches :: [ HttpHandler ]+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data HttpHandler+   = HttpHandler+     {+         httpHandlerVerb :: HttpVerb,+         httpHandlerLocation :: Location,+         httpHandlerDef :: HttpHandlerDef,+         httpHandlerUrl :: String,+         httpHandlerUserInputs :: [ UserInput ],+         httpHandlerAuth :: Maybe Authentication+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data HttpHandlerDef+   = MethodOfClass MethodName ClassName+   | NamedFunction FunctionName+   | AnonymousFunction+   deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data MethodName = MethodName String deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )+data ClassName = ClassName String deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )+data FunctionName = FunctionName String deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data UserInput+   = RequestObjectCtor RequestObject+   | RequestParamCtor RequestParam+   | PathVariableCtor PathVariable+   | RequestBodyCtor RequestBody+   | RequestHeaderCtor RequestHeader+   | CookieValueCtor CookieValue+   | RequestPartCtor RequestPart+   deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data RequestObject = RequestObject Location deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data RequestParam+   = RequestParam+     {+         requestParamName :: String,+         requestParamLocation :: Location+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data PathVariable = PathVariable Location deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )+data RequestBody = RequestBody Location deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )+data RequestHeader = RequestHeader Location deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )+data CookieValue = CookieValue Location deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )+data RequestPart = RequestPart Location deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Authentication+   = Authentication+     {+         authenticationFunctionName :: String,+         authenticationEvidence :: AuthEvidence+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++-- | Evidence carrier for authenticated-handler classifications.+--+-- Same "one concept, N payload shapes" tagged-union pattern that+-- 'Kbapi.Query' itself uses. Each constructor names a distinct+-- structural recognition path in the KB and carries whatever+-- payload that path can bind. New auth mechanisms are pure leaf+-- additions here : add a constructor + a matching Prolog clause+-- + one line in the queryengine decoder \- no existing consumer+-- changes.+--+-- Current constructors :+--+-- * @ByHeaderNullCheck HeaderKey@ \- the authenticating function+--   implements the strict @Request.headers.get( key ) ; if(!v)+--   return null@ idiom. @HeaderKey@ is the header name string+--   ( e.g. @\"x-api-key\"@ ). Bound by the KB rule+--   @utils_early_return_null_on_missing_request_header_value@.+--+-- * @ByAllButOneBadReturn@ \- the authenticating function's body+--   shape is "K-1 bad-http returns + 1 parser-injected fall-through" :+--   every failing path emits an error response, the single success+--   path falls through implicitly. No payload \- the evidence /is/+--   the shape, and the callable\'s name is already carried by+--   'authenticationFunctionName'.+data AuthEvidence+   = ByHeaderNullCheck String+   | ByAllButOneBadReturn+   deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )
+ src/WithSanitizers.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveAnyClass #-}++module WithSanitizers++where++-- general imports+import GHC.Generics+import Data.Aeson++-- project imports+import Location++data Features+   = Features+     {+        userInput :: Location,+        sink :: Location,+        maxNumSanitizers :: Word+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data Content+   = Content+     {+        total :: Word,+        matches :: [ Sanitizer ]+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++-- | One constructor per gadget kind ; tagged in JSON even while it is the only one+data Sanitizer+   = TopLevelIfThenElse IfThenElse+   deriving ( Show, Eq, Ord, Generic )++instance ToJSON Sanitizer where+    toJSON = genericToJSON defaultOptions { tagSingleConstructors = True }+    toEncoding = genericToEncoding defaultOptions { tagSingleConstructors = True }++instance FromJSON Sanitizer where+    parseJSON = genericParseJSON defaultOptions { tagSingleConstructors = True }++data IfThenElse+   = IfThenElse+     {+         cond :: PartCall,+         userInputArgIndex :: Word,+         userInputFlow :: [ FlowStep ],+         thenPart :: [ PartCall ],+         elsePart :: [ PartCall ]+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data FlowStep+   = FlowStep+     {+         flowStepLocation :: Location,+         flowStepQualifiedName :: Maybe String+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )++data PartCall+   = PartCall+     {+         location :: Location,+         qualifiedName :: Maybe String,+         constStringArgs :: [ String ]+     }+     deriving ( Show, Eq, Ord, Generic, ToJSON, FromJSON )