Security Access Isolation
Tests that prove tenant, role and user isolation across the service and query surface, so one tenant can never read or mutate another tenant’s data.
Advanced analytics
PenTestAdvancedAnalyticsChart
Jube.Test.Security.AdvancedAnalytics.PenTestAdvancedAnalyticsChart — 6 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
EveryChartRoute_RefusesEveryoneButAHolderOfPermissionFortyEightAsync |
Fact | Every chart route refuses everyone but a holder of permission forty eight. |
OwnCharts_AreSafeWellFormedExternalStyleSvgWithTheSameHeadersAsTheExhaustiveChartsAsync |
Fact | Own charts are safe well formed external style svg with the same headers as the exhaustive charts. |
CrossTenant_ForeignAndMissingAndDeletedVersionsAreIdenticalEmptyStatesAsync |
Fact | Cross tenant foreign and missing and deleted versions are identical empty states. |
HostileModelNamesAreEscapedInsideTheDiagramAsync |
Fact | Hostile model names are escaped inside the diagram. |
VerbTamperingAndRouteAbuse_NeverReachTheRendererOrServerErrorAsync |
Fact | Verb tampering and route abuse never reach the renderer or server error. |
ConcurrentRenders_AreDeterministicAndBoundedAsync |
Fact | Concurrent renders are deterministic and bounded. |
PenTestAdvancedAnalyticsInstance
Jube.Test.Security.AdvancedAnalytics.PenTestAdvancedAnalyticsInstance — 8 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
EveryRoute_RefusesUnauthenticatedAndUnpermittedCallersAsync |
Fact | Every route refuses unauthenticated and unpermitted callers. |
Delete_PermissionFortyEightDeletesUnallocated_AnAllocatedInstanceAlsoNeedsFortySevenAsync |
Fact | Delete permission forty eight deletes unallocated an allocated instance also needs forty seven. |
CrossTenant_ForeignIdsBehaveExactlyLikeMissingIdsAndNothingChangesAsync |
Fact | Cross tenant foreign ids behave exactly like missing ids and nothing changes. |
NoMutatingRouteExistsBesideDelete_AndWrongVerbsNeverReachAHandlerAsync |
Fact | No mutating route exists beside delete and wrong verbs never reach a handler. |
Delete_IgnoresBodiesQueryStringsAndHeadersAndDeletesExactlyTheRouteIdAsync |
Fact | Delete ignores bodies query strings and headers and deletes exactly the route id. |
RouteAndQueryParameters_AreRefusedWithoutServerErrorsOrSideEffectsAsync |
Fact | Route and query parameters are refused without server errors or side effects. |
HostileStoredNames_AreReturnedAsJsonDataNeverAsMarkupAsync |
Fact | Hostile stored names are returned as json data never as markup. |
Responses_AreWellFormedJsonWithoutTheStackOrServerHeadersAsync |
Fact | Responses are well formed json without the stack or server headers. |
PenTestAdvancedAnalyticsInstanceActive
Jube.Test.Security.AdvancedAnalytics.PenTestAdvancedAnalyticsInstanceActive — 8 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
Put_RefusesUnauthenticatedAndUnpermittedCallersAndOnlyFortySevenSwitchesAsync |
Fact | Put refuses unauthenticated and unpermitted callers and only forty seven switches. |
Put_AnUnallocatedInstanceCannotBeSwitchedOnAndSaysWhyWithoutInternalsAsync |
Fact | Put an unallocated instance cannot be switched on and says why without internals. |
Put_CrossTenantForeignIdsBehaveExactlyLikeMissingIdsAndNothingChangesAsync |
Fact | Put cross tenant foreign ids behave exactly like missing ids and nothing changes. |
Put_MassAssignmentChangesOnlyTheSwitchAndNeverAnythingTheBodyAlsoNamesAsync |
Fact | Put mass assignment changes only the switch and never anything the body also names. |
Put_WrongVerbsNeverSwitchAndOverrideHeadersAreIgnoredAsync |
Fact | Put wrong verbs never switch and override headers are ignored. |
Put_MalformedBodiesAreRefusedWithoutServerErrorsOrSideEffectsAsync |
Fact | Put malformed bodies are refused without server errors or side effects. |
Put_RouteAbuseIsRefusedWithoutServerErrorsAsync |
Fact | Put route abuse is refused without server errors. |
Put_ConcurrentSwitchesLeaveAConsistentRowAndNoServerErrorsAsync |
Fact | Put concurrent switches leave a consistent row and no server errors. |
PenTestAdvancedAnalyticsModel
Jube.Test.Security.AdvancedAnalytics.PenTestAdvancedAnalyticsModel — 7 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
EveryReadRoute_RefusesEveryoneButAHolderOfPermissionFortyEightAsync |
Fact | Every read route refuses everyone but a holder of permission forty eight. |
NoMutatingRouteExists_PromotionAndRollbackAreNotReachableOverHttpAsync |
Fact | No mutating route exists promotion and rollback are not reachable over http. |
CrossTenant_ForeignIdsBehaveExactlyLikeMissingIdsOnEveryReadAsync |
Fact | Cross tenant foreign ids behave exactly like missing ids on every read. |
Payloads_NeverCarryTheModelJsonTheTenantColumnOrNonFiniteNumbersAsync |
Fact | Payloads never carry the model json the tenant column or non finite numbers. |
Compare_RefusesNonsenseAndNeverMixesTenantsAsync |
Fact | Compare refuses nonsense and never mixes tenants. |
RouteAndQueryParameters_AreRefusedWithoutServerErrorsAsync |
Fact | Route and query parameters are refused without server errors. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
Case
PenTestActivationWatcher
Jube.Test.Security.Case.PenTestActivationWatcher — 6 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryPrincipal_GetsExactStatusAndOnlyOwnTenantRowsAsync |
Fact | Matrix every principal gets exact status and only own tenant rows. |
ForeignTenantParameters_AreIgnoredAsync |
Fact | Foreign tenant parameters are ignored. |
DateFilters_InjectionAndTypeConfusion_FailSafelyAsync |
Fact | Date filters injection and type confusion fail safely. |
DateRange_Semantics_AreStableAsync |
Fact | Date range semantics are stable. |
OtherVerbs_AreNotAcceptedAsync |
Fact | Other verbs are not accepted. |
ParallelReplays_AreConsistentAsync |
Fact | Parallel replays are consistent. |
PenTestArchive
Jube.Test.Security.Case.PenTestArchive — 9 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryPrincipal_GetsExactStatusAsync |
Fact | Matrix every principal gets exact status. |
OtherTenantsArchive_BehavesLikeMissing_AndIsNeverModifiedAsync |
Fact | Other tenants archive behaves like missing and is never modified. |
MassAssignment_ExtraProperties_AreIgnoredAsync |
Fact | Mass assignment extra properties are ignored. |
TagValues_Injection_IsStoredAsDataOrRejectedAsync |
Fact | Tag values injection is stored as data or rejected. |
NulAndControlCharacters_AreRejectedNotErrorsAsync |
Fact | Nul and control characters are rejected not errors. |
Boundaries_AndTypeConfusion_FailSafelyAsync |
Fact | Boundaries and type confusion fail safely. |
HugeTagArray_IsRefusedBeforeItCanConsumeTheDatabaseAsync |
Fact | Huge tag array is refused before it can consume the database. |
ReplayAndParallelUpdates_ConvergeOnASingleConsistentSetAsync |
Fact | Replay and parallel updates converge on a single consistent set. |
OtherVerbs_AreNotAcceptedAsync |
Fact | Other verbs are not accepted. |
PenTestCase
Jube.Test.Security.Case.PenTestCase — 15 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_List_GetById_Put_EveryPrincipalAsync |
Fact | Matrix list get by id put every principal. |
List_NeverExposesCasesOutsideTheCallersTenantOrRolesAsync |
Fact | List never exposes cases outside the callers tenant or roles. |
GetById_ForeignGatedHiddenAndMissing_AreIndistinguishableAsync |
Fact | Get by id foreign gated hidden and missing are indistinguishable. |
RouteParameter_Injection_AndTypeConfusion_NeverErrorsAsync |
Fact | Route parameter injection and type confusion never errors. |
Update_ForeignGatedAndHiddenCases_AreNotFoundAndNeverChangedAsync |
Fact | Update foreign gated and hidden cases are not found and never changed. |
Update_MassAssignment_ServerOwnedFieldsAreNeverHonouredAsync |
Fact | Update mass assignment server owned fields are never honoured. |
Update_StatusTransitions_OnlyToVisibleStatusesOfTheSameWorkflowAsync |
Fact | Update status transitions only to visible statuses of the same workflow. |
Lock_CannotBeStolenOrForgedAcrossUsersAndTenantsAsync |
Fact | Lock cannot be stolen or forged across users and tenants. |
Update_FieldBoundaries_AndTypeConfusion_FailSafelyAsync |
Fact | Update field boundaries and type confusion fail safely. |
Update_StringFields_Injection_IsRefusedOrStoredAsDataAsync |
Fact | Update string fields injection is refused or stored as data. |
Update_Replay_IsIdempotent_AndConcurrentUpdatesStayConsistentAsync |
Fact | Update replay is idempotent and concurrent updates stay consistent. |
ParentDeleted_CaseBecomesUnreachableAsync |
Fact | Parent deleted case becomes unreachable. |
Insert_ForeignAndInvalidStatuses_AreRefused_AndServerOwnedFieldsIgnoredAsync |
Fact | Insert foreign and invalid statuses are refused and server owned fields ignored. |
CreateFromCaseKeyValue_Matrix_Injection_AndForeignReferencesAsync |
Fact | Create from case key value matrix injection and foreign references. |
Verbs_AndOverrides_AreNotAcceptedAsync |
Fact | Verbs and overrides are not accepted. |
PenTestCaseFile
Jube.Test.Security.Case.PenTestCaseFile — 14 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_Download_EveryPrincipalAsync |
Fact | Matrix download every principal. |
Matrix_Upload_EveryPrincipalAsync |
Fact | Matrix upload every principal. |
Matrix_Remove_EveryPrincipalAsync |
Fact | Matrix remove every principal. |
Matrix_ListByKey_EveryPrincipalAsync |
Fact | Matrix list by key every principal. |
Download_ForeignGatedHiddenAndMissingIds_AreIndistinguishableAsync |
Fact | Download foreign gated hidden and missing ids are indistinguishable. |
Download_IdParameter_InjectionAndTypeConfusionAsync |
Fact | Download id parameter injection and type confusion. |
Upload_ToForeignGatedHiddenOrMissingCases_IsRefusedAndStoresNothingAsync |
Fact | Upload to foreign gated hidden or missing cases is refused and stores nothing. |
Upload_KeyMismatch_CannotPlantFilesOnAnotherCasesKeyAsync |
Fact | Upload key mismatch cannot plant files on another cases key. |
Upload_FileNames_AreSanitisedAndNeverCarryMarkupOrPathsAsync |
Fact | Upload file names are sanitised and never carry markup or paths. |
Download_SpoofedContentTypes_CanNeverRenderAsActiveContentOfTheApplicationOriginAsync |
Fact | Download spoofed content types can never render as active content of the application origin. |
Upload_SizeAndShape_BoundariesAsync |
Fact | Upload size and shape boundaries. |
Remove_Replay_ForeignIds_AndTypeConfusionAsync |
Fact | Remove replay foreign ids and type confusion. |
ListByKey_Injection_MissingParameters_AndCrossKeyProbingAsync |
Fact | List by key injection missing parameters and cross key probing. |
OtherVerbs_AreNotAcceptedAsync |
Fact | Other verbs are not accepted. |
PenTestCaseNote
Jube.Test.Security.Case.PenTestCaseNote — 11 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_Insert_And_ListByKey_EveryPrincipalAsync |
Fact | Matrix insert and list by key every principal. |
Insert_ForeignGatedHiddenMissingCases_AreRefusedIdentically_AndStoreNothingAsync |
Fact | Insert foreign gated hidden missing cases are refused identically and store nothing. |
Insert_ActionsOfOtherTenantsRolesOrWorkflows_AreRefusedAsync |
Fact | Insert actions of other tenants roles or workflows are refused. |
Insert_KeySmuggling_NoteAlwaysCarriesTheCasesOwnKeyAsync |
Fact | Insert key smuggling note always carries the cases own key. |
Insert_StoredXss_NoteIsNeverReturnedAsActiveMarkupAsync |
Fact | Insert stored xss note is never returned as active markup. |
Insert_LegitimateNotes_RoundTripFaithfullyAsync |
Fact | Insert legitimate notes round trip faithfully. |
Insert_MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Insert mass assignment server owned fields are not honoured. |
Insert_LengthLimit_AndOversizeBodiesAsync |
Fact | Insert length limit and oversize bodies. |
Insert_Boundaries_TypeConfusion_AndInjection_FailSafelyAsync |
Fact | Insert boundaries type confusion and injection fail safely. |
ListByKey_GatedHiddenAndForeignKeys_ReturnNothing_AndInputsAreSafeAsync |
Fact | List by key gated hidden and foreign keys return nothing and inputs are safe. |
Notes_AreAppendOnly_AndOtherVerbsAreRejectedAsync |
Fact | Notes are append only and other verbs are rejected. |
PenTestCaseWorkflow
Jube.Test.Security.Case.PenTestCaseWorkflow — 11 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_ReadRoutes_EveryPrincipalAsync |
Fact | Matrix read routes every principal. |
Matrix_WriteRoutes_EveryPrincipalAsync |
Fact | Matrix write routes every principal. |
ForeignAndGated_ReadsBehaveLikeMissingAsync |
Fact | Foreign and gated reads behave like missing. |
Writes_ToForeignRowsAndParents_AreRefused_AndChangeNothingAsync |
Fact | Writes to foreign rows and parents are refused and change nothing. |
VisualisationReference_MustBelongToTheCallersTenantAsync |
Fact | Visualisation reference must belong to the callers tenant. |
MassAssignment_ServerOwnedFieldsAreNeverHonouredAsync |
Fact | Mass assignment server owned fields are never honoured. |
Fields_Injection_Limits_AndTypeConfusion_FailSafelyAsync |
Fact | Fields injection limits and type confusion fail safely. |
RouteParameters_Injection_AndTypeConfusion_NeverErrorAsync |
Fact | Route parameters injection and type confusion never error. |
Lifecycle_DuplicateNames_SoftDelete_Locked_AndConcurrencyAsync |
Fact | Lifecycle duplicate names soft delete locked and concurrency. |
ConcurrentCreates_OfTheSameName_ProduceOneRowAsync |
Fact | Concurrent creates of the same name produce one row. |
Verbs_AndOverrides_AreNotAcceptedAsync |
Fact | Verbs and overrides are not accepted. |
PenTestCaseWorkflowAction
Jube.Test.Security.Case.PenTestCaseWorkflowAction — 12 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_ReadRoutes_EveryPrincipalAsync |
Fact | Matrix read routes every principal. |
Matrix_WriteRoutes_EveryPrincipalAsync |
Fact | Matrix write routes every principal. |
ForeignAndGatedIds_BehaveLikeMissing_OnEveryReadRouteAsync |
Fact | Foreign and gated ids behave like missing on every read route. |
Writes_ToForeignRowsAndParents_AreRefused_AndChangeNothingAsync |
Fact | Writes to foreign rows and parents are refused and change nothing. |
MassAssignment_ServerOwnedFieldsAreNeverHonouredAsync |
Fact | Mass assignment server owned fields are never honoured. |
TextFields_Injection_IsStoredAsDataOrRefusedAsync |
Fact | Text fields injection is stored as data or refused. |
TextFields_Limits_AndOversizeBodies_AreEnforcedWithoutErrorsAsync |
Fact | Text fields limits and oversize bodies are enforced without errors. |
Boundaries_TypeConfusion_AndMalformedBodies_FailSafelyAsync |
Fact | Boundaries type confusion and malformed bodies fail safely. |
RouteParameters_Injection_AndTypeConfusion_NeverErrorAsync |
Fact | Route parameters injection and type confusion never error. |
SoftDelete_Replay_LockedRows_AndConcurrentDuplicatesAsync |
Fact | Soft delete replay locked rows and concurrent duplicates. |
ConcurrentCreates_OfTheSameName_ProduceOneRowAsync |
Fact | Concurrent creates of the same name produce one row. |
Verbs_AndOverrides_AreNotAcceptedAsync |
Fact | Verbs and overrides are not accepted. |
PenTestCaseWorkflowActionRole
Jube.Test.Security.Case.PenTestCaseWorkflowActionRole — 9 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryPrincipal_OnEveryRouteAsync |
Fact | Matrix every principal on every route. |
Create_WithForeignReferences_IsRefused_AndChangesNothingAsync |
Fact | Create with foreign references is refused and changes nothing. |
List_ForForeignAndMissingParents_IsIndistinguishableAsync |
Fact | List for foreign and missing parents is indistinguishable. |
Delete_ForeignIds_AreRefused_ReplayIsRefused_AndRowsSurviveAsync |
Fact | Delete foreign ids are refused replay is refused and rows survive. |
DuplicateAndConcurrentGrants_DoNotMultiplyAsync |
Fact | Duplicate and concurrent grants do not multiply. |
MassAssignment_ServerOwnedFieldsAreNeverHonouredAsync |
Fact | Mass assignment server owned fields are never honoured. |
Boundaries_TypeConfusion_AndInjection_FailSafelyAsync |
Fact | Boundaries type confusion and injection fail safely. |
RouteParameters_Injection_AndTypeConfusion_NeverErrorAsync |
Fact | Route parameters injection and type confusion never error. |
Verbs_AndOverrides_AreNotAcceptedAsync |
Fact | Verbs and overrides are not accepted. |
PenTestCaseWorkflowDisplay
Jube.Test.Security.Case.PenTestCaseWorkflowDisplay — 12 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_ReadRoutes_EveryPrincipalAsync |
Fact | Matrix read routes every principal. |
Matrix_WriteRoutes_EveryPrincipalAsync |
Fact | Matrix write routes every principal. |
ForeignAndGatedIds_BehaveLikeMissing_OnEveryReadRouteAsync |
Fact | Foreign and gated ids behave like missing on every read route. |
Writes_ToForeignRowsAndParents_AreRefused_AndChangeNothingAsync |
Fact | Writes to foreign rows and parents are refused and change nothing. |
MassAssignment_ServerOwnedFieldsAreNeverHonouredAsync |
Fact | Mass assignment server owned fields are never honoured. |
TextFields_Injection_IsStoredAsDataOrRefusedAsync |
Fact | Text fields injection is stored as data or refused. |
TextFields_Limits_AndOversizeBodies_AreEnforcedWithoutErrorsAsync |
Fact | Text fields limits and oversize bodies are enforced without errors. |
Boundaries_TypeConfusion_AndMalformedBodies_FailSafelyAsync |
Fact | Boundaries type confusion and malformed bodies fail safely. |
RouteParameters_Injection_AndTypeConfusion_NeverErrorAsync |
Fact | Route parameters injection and type confusion never error. |
SoftDelete_Replay_LockedRows_AndConcurrentDuplicatesAsync |
Fact | Soft delete replay locked rows and concurrent duplicates. |
ConcurrentCreates_OfTheSameName_ProduceOneRowAsync |
Fact | Concurrent creates of the same name produce one row. |
Verbs_AndOverrides_AreNotAcceptedAsync |
Fact | Verbs and overrides are not accepted. |
PenTestCaseWorkflowDisplayRole
Jube.Test.Security.Case.PenTestCaseWorkflowDisplayRole — 9 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryPrincipal_OnEveryRouteAsync |
Fact | Matrix every principal on every route. |
Create_WithForeignReferences_IsRefused_AndChangesNothingAsync |
Fact | Create with foreign references is refused and changes nothing. |
List_ForForeignAndMissingParents_IsIndistinguishableAsync |
Fact | List for foreign and missing parents is indistinguishable. |
Delete_ForeignIds_AreRefused_ReplayIsRefused_AndRowsSurviveAsync |
Fact | Delete foreign ids are refused replay is refused and rows survive. |
DuplicateAndConcurrentGrants_DoNotMultiplyAsync |
Fact | Duplicate and concurrent grants do not multiply. |
MassAssignment_ServerOwnedFieldsAreNeverHonouredAsync |
Fact | Mass assignment server owned fields are never honoured. |
Boundaries_TypeConfusion_AndInjection_FailSafelyAsync |
Fact | Boundaries type confusion and injection fail safely. |
RouteParameters_Injection_AndTypeConfusion_NeverErrorAsync |
Fact | Route parameters injection and type confusion never error. |
Verbs_AndOverrides_AreNotAcceptedAsync |
Fact | Verbs and overrides are not accepted. |
PenTestCaseWorkflowFilter
Jube.Test.Security.Case.PenTestCaseWorkflowFilter — 12 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_ReadRoutes_EveryPrincipalAsync |
Fact | Matrix read routes every principal. |
Matrix_WriteRoutes_EveryPrincipalAsync |
Fact | Matrix write routes every principal. |
ForeignAndGatedIds_BehaveLikeMissing_OnEveryReadRouteAsync |
Fact | Foreign and gated ids behave like missing on every read route. |
Writes_ToForeignRowsAndParents_AreRefused_AndChangeNothingAsync |
Fact | Writes to foreign rows and parents are refused and change nothing. |
MassAssignment_ServerOwnedFieldsAreNeverHonouredAsync |
Fact | Mass assignment server owned fields are never honoured. |
TextFields_Injection_IsStoredAsDataOrRefusedAsync |
Fact | Text fields injection is stored as data or refused. |
TextFields_Limits_AndOversizeBodies_AreEnforcedWithoutErrorsAsync |
Fact | Text fields limits and oversize bodies are enforced without errors. |
Boundaries_TypeConfusion_AndMalformedBodies_FailSafelyAsync |
Fact | Boundaries type confusion and malformed bodies fail safely. |
RouteParameters_Injection_AndTypeConfusion_NeverErrorAsync |
Fact | Route parameters injection and type confusion never error. |
SoftDelete_Replay_LockedRows_AndConcurrentDuplicatesAsync |
Fact | Soft delete replay locked rows and concurrent duplicates. |
ConcurrentCreates_OfTheSameName_ProduceOneRowAsync |
Fact | Concurrent creates of the same name produce one row. |
Verbs_AndOverrides_AreNotAcceptedAsync |
Fact | Verbs and overrides are not accepted. |
PenTestCaseWorkflowFilterRole
Jube.Test.Security.Case.PenTestCaseWorkflowFilterRole — 6 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_ByParentGuid_IsPermissionedAndTenantIsolatedAsync |
Fact | Get by parent guid is permissioned and tenant isolated. |
Post_IsPermissionedAndRefusesForeignParentsAndRolesAsync |
Fact | Post is permissioned and refuses foreign parents and roles. |
Post_HappyPathAndMassAssignment_PersistOnlyServerControlledFieldsAsync |
Fact | Post happy path and mass assignment persist only server controlled fields. |
Post_DuplicateGrants_DoNotCreateDuplicateRowsAsync |
Fact | Post duplicate grants do not create duplicate rows. |
Post_TypeConfusionAndStructure_FailSafelyAsync |
Fact | Post type confusion and structure fail safely. |
Delete_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Delete is permissioned and object level authorised. |
PenTestCaseWorkflowForm
Jube.Test.Security.Case.PenTestCaseWorkflowForm — 12 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_List_IsPermissionedAndTenantIsolatedAsync |
Fact | Get list is permissioned and tenant isolated. |
Get_ById_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Get by id is permissioned and object level authorised. |
Get_ByWorkflowRoutes_ArePermissionedAndTenantIsolatedAsync |
Fact | Get by workflow routes are permissioned and tenant isolated. |
Post_IsPermissionedAndRefusesForeignParentsAsync |
Fact | Post is permissioned and refuses foreign parents. |
Post_MassAssignment_ForbiddenFieldsAreNotHonouredAsync |
Fact | Post mass assignment forbidden fields are not honoured. |
Post_StoredHostilePayloads_AreDataAndRoundTripFaithfullyAsync |
Fact | Post stored hostile payloads are data and round trip faithfully. |
Post_TypeConfusionAndBoundaries_FailSafelyAsync |
Fact | Post type confusion and boundaries fail safely. |
Post_LengthLimitsAndDuplicateNames_AreEnforcedAsync |
Fact | Post length limits and duplicate names are enforced. |
Put_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Put is permissioned and object level authorised. |
Put_MassAssignment_LockingAndSoftDelete_BehaveSafelyAsync |
Fact | Put mass assignment locking and soft delete behave safely. |
Put_TypeConfusionAndInjection_FailSafelyAsync |
Fact | Put type confusion and injection fail safely. |
Delete_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Delete is permissioned and object level authorised. |
PenTestCaseWorkflowFormEntry
Jube.Test.Security.Case.PenTestCaseWorkflowFormEntry — 5 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Post_IsPermissionedAndRefusesForeignCasesAndFormsAsync |
Fact | Post is permissioned and refuses foreign cases and forms. |
Post_KeepsTheEntryConsistentWithItsCaseAsync |
Fact | Post keeps the entry consistent with its case. |
Post_HostilePayloadKeysAndValues_AreStoredAsDataAndRoundTripAsync |
Fact | Post hostile payload keys and values are stored as data and round trip. |
Post_StructuralAbuse_FailsSafelyAsync |
Fact | Post structural abuse fails safely. |
Get_ByCaseKeyValue_IsPermissionedAndTenantIsolatedAsync |
Fact | Get by case key value is permissioned and tenant isolated. |
PenTestCaseWorkflowFormEntryValue
Jube.Test.Security.Case.PenTestCaseWorkflowFormEntryValue — 1 test. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_ByEntryId_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Get by entry id is permissioned and object level authorised. |
PenTestCaseWorkflowFormRole
Jube.Test.Security.Case.PenTestCaseWorkflowFormRole — 6 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_ByParentGuid_IsPermissionedAndTenantIsolatedAsync |
Fact | Get by parent guid is permissioned and tenant isolated. |
Post_IsPermissionedAndRefusesForeignParentsAndRolesAsync |
Fact | Post is permissioned and refuses foreign parents and roles. |
Post_HappyPathAndMassAssignment_PersistOnlyServerControlledFieldsAsync |
Fact | Post happy path and mass assignment persist only server controlled fields. |
Post_DuplicateGrants_DoNotCreateDuplicateRowsAsync |
Fact | Post duplicate grants do not create duplicate rows. |
Post_TypeConfusionAndStructure_FailSafelyAsync |
Fact | Post type confusion and structure fail safely. |
Delete_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Delete is permissioned and object level authorised. |
PenTestCaseWorkflowMacro
Jube.Test.Security.Case.PenTestCaseWorkflowMacro — 13 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_List_IsPermissionedAndTenantIsolatedAsync |
Fact | Get list is permissioned and tenant isolated. |
Get_ById_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Get by id is permissioned and object level authorised. |
Get_ByWorkflowRoutes_ArePermissionedAndTenantIsolatedAsync |
Fact | Get by workflow routes are permissioned and tenant isolated. |
Post_IsPermissionedAndRefusesForeignParentsAsync |
Fact | Post is permissioned and refuses foreign parents. |
Post_MassAssignment_ForbiddenFieldsAreNotHonouredAsync |
Fact | Post mass assignment forbidden fields are not honoured. |
Post_StoredHostilePayloads_AreDataAndRoundTripFaithfullyAsync |
Fact | Post stored hostile payloads are data and round trip faithfully. |
Post_TypeConfusionAndBoundaries_FailSafelyAsync |
Fact | Post type confusion and boundaries fail safely. |
Post_LengthLimitsAndDuplicateNames_AreEnforcedAsync |
Fact | Post length limits and duplicate names are enforced. |
Put_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Put is permissioned and object level authorised. |
Put_MassAssignment_LockingAndSoftDelete_BehaveSafelyAsync |
Fact | Put mass assignment locking and soft delete behave safely. |
Put_TypeConfusionAndInjection_FailSafelyAsync |
Fact | Put type confusion and injection fail safely. |
Delete_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Delete is permissioned and object level authorised. |
Post_ImageLocation_RejectsPathsAndMarkupAsync |
Fact | Post image location rejects paths and markup. |
PenTestCaseWorkflowMacroRole
Jube.Test.Security.Case.PenTestCaseWorkflowMacroRole — 6 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_ByParentGuid_IsPermissionedAndTenantIsolatedAsync |
Fact | Get by parent guid is permissioned and tenant isolated. |
Post_IsPermissionedAndRefusesForeignParentsAndRolesAsync |
Fact | Post is permissioned and refuses foreign parents and roles. |
Post_HappyPathAndMassAssignment_PersistOnlyServerControlledFieldsAsync |
Fact | Post happy path and mass assignment persist only server controlled fields. |
Post_DuplicateGrants_DoNotCreateDuplicateRowsAsync |
Fact | Post duplicate grants do not create duplicate rows. |
Post_TypeConfusionAndStructure_FailSafelyAsync |
Fact | Post type confusion and structure fail safely. |
Delete_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Delete is permissioned and object level authorised. |
PenTestCaseWorkflowPriority
Jube.Test.Security.Case.PenTestCaseWorkflowPriority — 1 test. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_Priorities_ArePermissionedAndLeakNothingAboutWorkflowsAsync |
Fact | Get priorities are permissioned and leak nothing about workflows. |
PenTestCaseWorkflowRole
Jube.Test.Security.Case.PenTestCaseWorkflowRole — 6 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_ByParentGuid_IsPermissionedAndTenantIsolatedAsync |
Fact | Get by parent guid is permissioned and tenant isolated. |
Post_IsPermissionedAndRefusesForeignParentsAndRolesAsync |
Fact | Post is permissioned and refuses foreign parents and roles. |
Post_HappyPathAndMassAssignment_PersistOnlyServerControlledFieldsAsync |
Fact | Post happy path and mass assignment persist only server controlled fields. |
Post_DuplicateGrants_DoNotCreateDuplicateRowsAsync |
Fact | Post duplicate grants do not create duplicate rows. |
Post_TypeConfusionAndStructure_FailSafelyAsync |
Fact | Post type confusion and structure fail safely. |
Delete_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Delete is permissioned and object level authorised. |
PenTestCaseWorkflowStatus
Jube.Test.Security.Case.PenTestCaseWorkflowStatus — 13 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_List_IsPermissionedAndTenantIsolatedAsync |
Fact | Get list is permissioned and tenant isolated. |
Get_ById_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Get by id is permissioned and object level authorised. |
Get_ByWorkflowRoutes_ArePermissionedAndTenantIsolatedAsync |
Fact | Get by workflow routes are permissioned and tenant isolated. |
Post_IsPermissionedAndRefusesForeignParentsAsync |
Fact | Post is permissioned and refuses foreign parents. |
Post_MassAssignment_ForbiddenFieldsAreNotHonouredAsync |
Fact | Post mass assignment forbidden fields are not honoured. |
Post_StoredHostilePayloads_AreDataAndRoundTripFaithfullyAsync |
Fact | Post stored hostile payloads are data and round trip faithfully. |
Post_TypeConfusionAndBoundaries_FailSafelyAsync |
Fact | Post type confusion and boundaries fail safely. |
Post_LengthLimitsAndDuplicateNames_AreEnforcedAsync |
Fact | Post length limits and duplicate names are enforced. |
Put_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Put is permissioned and object level authorised. |
Put_MassAssignment_LockingAndSoftDelete_BehaveSafelyAsync |
Fact | Put mass assignment locking and soft delete behave safely. |
Put_TypeConfusionAndInjection_FailSafelyAsync |
Fact | Put type confusion and injection fail safely. |
Delete_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Delete is permissioned and object level authorised. |
Post_Priority_IsBoundedAndDuplicatesAreAllowedAsync |
Fact | Post priority is bounded and duplicates are allowed. |
PenTestCaseWorkflowStatusRole
Jube.Test.Security.Case.PenTestCaseWorkflowStatusRole — 6 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_ByParentGuid_IsPermissionedAndTenantIsolatedAsync |
Fact | Get by parent guid is permissioned and tenant isolated. |
Post_IsPermissionedAndRefusesForeignParentsAndRolesAsync |
Fact | Post is permissioned and refuses foreign parents and roles. |
Post_HappyPathAndMassAssignment_PersistOnlyServerControlledFieldsAsync |
Fact | Post happy path and mass assignment persist only server controlled fields. |
Post_DuplicateGrants_DoNotCreateDuplicateRowsAsync |
Fact | Post duplicate grants do not create duplicate rows. |
Post_TypeConfusionAndStructure_FailSafelyAsync |
Fact | Post type confusion and structure fail safely. |
Delete_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Delete is permissioned and object level authorised. |
PenTestCaseWorkflowXPath
Jube.Test.Security.Case.PenTestCaseWorkflowXPath — 13 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_List_IsPermissionedAndTenantIsolatedAsync |
Fact | Get list is permissioned and tenant isolated. |
Get_ById_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Get by id is permissioned and object level authorised. |
Get_ByWorkflowRoutes_ArePermissionedAndTenantIsolatedAsync |
Fact | Get by workflow routes are permissioned and tenant isolated. |
Post_IsPermissionedAndRefusesForeignParentsAsync |
Fact | Post is permissioned and refuses foreign parents. |
Post_MassAssignment_ForbiddenFieldsAreNotHonouredAsync |
Fact | Post mass assignment forbidden fields are not honoured. |
Post_StoredHostilePayloads_AreDataAndRoundTripFaithfullyAsync |
Fact | Post stored hostile payloads are data and round trip faithfully. |
Post_TypeConfusionAndBoundaries_FailSafelyAsync |
Fact | Post type confusion and boundaries fail safely. |
Post_LengthLimitsAndDuplicateNames_AreEnforcedAsync |
Fact | Post length limits and duplicate names are enforced. |
Put_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Put is permissioned and object level authorised. |
Put_MassAssignment_LockingAndSoftDelete_BehaveSafelyAsync |
Fact | Put mass assignment locking and soft delete behave safely. |
Put_TypeConfusionAndInjection_FailSafelyAsync |
Fact | Put type confusion and injection fail safely. |
Delete_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Delete is permissioned and object level authorised. |
Post_ColourFields_RejectMarkupAndStyleBreakoutsAsync |
Fact | Post colour fields reject markup and style breakouts. |
PenTestCaseWorkflowXPathRole
Jube.Test.Security.Case.PenTestCaseWorkflowXPathRole — 6 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Get_ByParentGuid_IsPermissionedAndTenantIsolatedAsync |
Fact | Get by parent guid is permissioned and tenant isolated. |
Post_IsPermissionedAndRefusesForeignParentsAndRolesAsync |
Fact | Post is permissioned and refuses foreign parents and roles. |
Post_HappyPathAndMassAssignment_PersistOnlyServerControlledFieldsAsync |
Fact | Post happy path and mass assignment persist only server controlled fields. |
Post_DuplicateGrants_DoNotCreateDuplicateRowsAsync |
Fact | Post duplicate grants do not create duplicate rows. |
Post_TypeConfusionAndStructure_FailSafelyAsync |
Fact | Post type confusion and structure fail safely. |
Delete_IsPermissionedAndObjectLevelAuthorisedAsync |
Fact | Delete is permissioned and object level authorised. |
Dynamic sql
PenTestCaseBySessionCaseSearchCompile
Jube.Test.Security.DynamicSql.PenTestCaseBySessionCaseSearchCompile — 2 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAuthorisationAndOwnershipAsync |
Fact | Authentication authorisation and ownership. |
AStoredRowWithHostileSqlNeverRunsAsync |
Fact | A stored row with hostile sql never runs. |
PenTestCaseJournal
Jube.Test.Security.DynamicSql.PenTestCaseJournal — 4 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
TenantScope_AnotherTenantsArchiveIsNeverReturnedAsync |
Fact | Tenant scope another tenants archive is never returned. |
InjectionInDrillNameDrillValueAndEveryOtherParameter_IsInertAndBoundedAsync |
Fact | Injection in drill name drill value and every other parameter is inert and bounded. |
LimitIsBounded_NegativeIsAClientError_HugeIsClampedAsync |
Fact | Limit is bounded negative is a client error huge is clamped. |
PenTestEntityAnalysisModelSample
Jube.Test.Security.DynamicSql.PenTestEntityAnalysisModelSample — 5 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
AnotherTenantsModel_IsNotFound_ExactlyLikeAnUnknownModelAsync |
Fact | Another tenants model is not found exactly like an unknown model. |
CsvCells_NeverCarryAFormulaThatASpreadsheetWouldEvaluateAsync |
Fact | Csv cells never carry a formula that a spreadsheet would evaluate. |
BoundaryValuesAndMalformedBodies_NeverProduceA500Async |
Fact | Boundary values and malformed bodies never produce a 500. |
Replay_AndConcurrentSamples_AreSafeAndBoundedAsync |
Fact | Replay and concurrent samples are safe and bounded. |
PenTestParser
Jube.Test.Security.DynamicSql.PenTestParser — 8 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
AnotherTenantsModel_LooksExactlyLikeAnUnknownModelAsync |
Fact | Another tenants model looks exactly like an unknown model. |
NothingOutsideTheAllowList_CanBeCompiled_InAnySpellingAsync |
Fact | Nothing outside the allow list can be compiled in any spelling. |
CurlyAndFullWidthQuotes_CannotHideCodeFromTheTokenScanAsync |
Fact | Curly and full width quotes cannot hide code from the token scan. |
EveryRuleParseType_AndOddTypeValues_AreHandledAsync |
Fact | Every rule parse type and odd type values are handled. |
OversizeAndDeeplyNestedText_IsBoundedAndNeverA500Async |
Fact | Oversize and deeply nested text is bounded and never a 500. |
MalformedBodies_AreClientErrorsNeverA500Async |
Fact | Malformed bodies are client errors never a 500. |
ParsingIsSideEffectFree_AndConcurrentParsesAreSafeAsync |
Fact | Parsing is side effect free and concurrent parses are safe. |
PenTestPostgresGuard
Jube.Test.Security.DynamicSql.PenTestPostgresGuard — 3 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
ReadOnlyAndTimeoutSurviveAReconnectAfterTheBackendIsKilledAsync |
Fact | Read only and timeout survive a reconnect after the backend is killed. |
AGuardedExecutionStillWorksAfterAReconnectAsync |
Fact | A guarded execution still works after a reconnect. |
ArchiveSampleLimitIsABoundParameterAndNotAParameterNumberAsync |
Fact | Archive sample limit is a bound parameter and not a parameter number. |
PenTestSessionCaseSearchCompiledSql
Jube.Test.Security.DynamicSql.PenTestSessionCaseSearchCompiledSql — 8 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
CompileAndExecute_HappyPath_AndOwnerScopingAsync |
Fact | Compile and execute happy path and owner scoping. |
SelectColumnExpression_IsNeverConcatenatedIntoSqlAsync |
Fact | Select column expression is never concatenated into sql. |
GroupConditionOperatorAndIdentifiers_AreClosedAllowListsAsync |
Fact | Group condition operator and identifiers are closed allow lists. |
CrossTenantWorkflowAndFilterGuids_AreRefusedWithoutLeakingExistenceAsync |
Fact | Cross tenant workflow and filter guids are refused without leaking existence. |
FilterValuesAreBoundParameters_AndBadTypesAreClientErrorsAsync |
Fact | Filter values are bound parameters and bad types are client errors. |
MalformedBodies_AreClientErrorsNeverA500Async |
Fact | Malformed bodies are client errors never a 500. |
ReplayAndDoubleSubmit_AreSafeAsync |
Fact | Replay and double submit are safe. |
PenTestSqlGate
Jube.Test.Security.DynamicSql.PenTestSqlGate — 17 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
EveryWriteSeedAndEverySpellingOfItIsRejected |
Fact | Every write seed and every spelling of it is rejected. |
EveryDangerousFunctionInEveryPositionIsRejected |
Fact | Every dangerous function in every position is rejected. |
CataloguesSystemViewsAndCredentialTablesAreRejectedInEverySpelling |
Fact | Catalogues system views and credential tables are rejected in every spelling. |
LegitimateSelectDatasourcesKeepWorking |
Fact | Legitimate select datasources keep working. |
MalformedOrEmptyTextIsRejectedNotCrashed |
Theory | Malformed or empty text is rejected not crashed. |
NullIsRejected |
Fact | Null is rejected. |
DeeplyNestedParenthesesAreRejectedOrAcceptedNeverCrash |
Theory | Deeply nested parentheses are rejected or accepted never crash. |
DeeplyNestedSubqueriesAreRejectedOrAcceptedNeverCrash |
Theory | Deeply nested subqueries are rejected or accepted never crash. |
ADeepWriteHiddenInsideNestedSubqueriesIsStillFound |
Fact | A deep write hidden inside nested subqueries is still found. |
OversizeStatementsAreRejected |
Fact | Oversize statements are rejected. |
ServerBuiltSqlThatJoinsTheIdentityTablesForTenantScopingStillPasses |
Fact | Server built sql that joins the identity tables for tenant scoping still passes. |
ParameterTokensNeverChangeTheVerdict |
Fact | Parameter tokens never change the verdict. |
AmplificationAndInformationFunctionsAreRefused |
Theory | Amplification and information functions are refused. |
LegitimateFunctionsStillPass |
Theory | Legitimate functions still pass. |
MaximumSizeStatementsAreValidatedInBoundedTime |
Fact | Maximum size statements are validated in bounded time. |
ValidationCostGrowsLinearlyWithStatementSize |
Fact | Validation cost grows linearly with statement size. |
StatementsOverTheSizeCapAreRefusedWithoutBeingParsed |
Fact | Statements over the size cap are refused without being parsed. |
PenTestVisualisationRegistryDatasource
Jube.Test.Security.DynamicSql.PenTestVisualisationRegistryDatasource — 9 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Theory | Authentication and authorisation matrix. |
SavePath_RejectsEveryWriteAsync |
Fact | Save path rejects every write. |
UpdatePath_RejectsEveryWriteAsync |
Fact | Update path rejects every write. |
LegitimateSelectDatasourcesCanStillBeSavedAndUpdatedAsync |
Fact | Legitimate select datasources can still be saved and updated. |
Idor_ForeignIdsBehaveLikeNotFoundAndNothingChangesAsync |
Fact | Idor foreign ids behave like not found and nothing changes. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
InjectionInEveryStringFieldAndRouteParameter_IsStoredAsDataOrRejectedAsync |
Fact | Injection in every string field and route parameter is stored as data or rejected. |
TypeConfusionAndMalformedBodies_NeverProduceA500Async |
Fact | Type confusion and malformed bodies never produce a 500. |
BusinessFlow_DeleteThenUpdate_DoesNotResurrect_AndDoubleSubmitIsSafeAsync |
Fact | Business flow delete then update does not resurrect and double submit is safe. |
PenTestVisualisationRegistryDatasourceCommandExecution
Jube.Test.Security.DynamicSql.PenTestVisualisationRegistryDatasourceCommandExecution — 8 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
ExecutePath_NeverRunsAWriteAsync |
Fact | Execute path never runs a write. |
LegitimateDatasourcesStillReturnTheirRowsAsync |
Fact | Legitimate datasources still return their rows. |
Parameters_AreBoundAsTypedValues_AnInjectedValueNeverChangesTheStatementAsync |
Fact | Parameters are bound as typed values an injected value never changes the statement. |
BadParameterBodies_AreAClientErrorNeverA500Async |
Fact | Bad parameter bodies are a client error never a 500. |
StatementTimeout_And_RowLimit_BoundTheCostAsync |
Fact | Statement timeout and row limit bound the cost. |
FailingLegitimateSql_DoesNotLeakSchemaOrConnectionDetailsAsync |
Fact | Failing legitimate sql does not leak schema or connection details. |
ExecutionsAreLoggedWithTheirParameters_AndOnlyForTheCallersOwnVisibleDatasourcesAsync |
Fact | Executions are logged with their parameters and only for the callers own visible datasources. |
Entity approval
PenTestEntityApproval
Jube.Test.Security.EntityApproval.PenTestEntityApproval — 10 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
ACheckerInTheSameTenantCanApproveAndTheRecordedCheckerIsTheCallerAsync |
Fact | A checker in the same tenant can approve and the recorded checker is the caller. |
AMakerWithApprovalRightsCannotApproveOrRejectTheirOwnChangeAsync |
Fact | A maker with approval rights cannot approve or reject their own change. |
ACheckerInAnotherTenantCannotDecideOnThisTenantsChangeAsync |
Fact | A checker in another tenant cannot decide on this tenants change. |
ApprovalStateOfAnotherTenantIsNotReadableAsync |
Fact | Approval state of another tenant is not readable. |
ClientsWithoutTheApprovalRightsCannotDecideOrListAsync |
Fact | Clients without the approval rights cannot decide or list. |
ANoteOverTheLimitIsRefusedAndNothingIsRecordedAsync |
Fact | A note over the limit is refused and nothing is recorded. |
ForgedFieldsOnADecisionAreIgnoredAsync |
Fact | Forged fields on a decision are ignored. |
ADecisionOnAStaleOrUnknownVersionIsRefusedAsync |
Fact | A decision on a stale or unknown version is refused. |
BulkValueApprovalStaysWithinTheCallersTenantAsync |
Fact | Bulk value approval stays within the callers tenant. |
ValueStatusOfAnotherTenantsListIsNotReadableAsync |
Fact | Value status of another tenants list is not readable. |
PenTestSensitiveRouteCoverage
Jube.Test.Security.EntityApproval.PenTestSensitiveRouteCoverage — 3 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
EverySensitiveRouteHasASpecificPenTest |
Fact | Every sensitive route has a specific pen test. |
TheSensitiveRegistryHasNoStaleEntries |
Fact | The sensitive registry has no stale entries. |
TheSensitiveRoutesAreFoundOnTheRunningHost |
Fact | The sensitive routes are found on the running host. |
PenTestVersionHistoryTenancy
Jube.Test.Security.EntityApproval.PenTestVersionHistoryTenancy — 3 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
TheOwningTenantReadsItsOwnVersionHistoryAsync |
Fact | The owning tenant reads its own version history. |
ANotherTenantReadsNoVersionHistoryOfThisTenantAsync |
Fact | A nother tenant reads no version history of this tenant. |
TheTenantRegistryHistoryIsLandlordOnlyAsync |
Fact | The tenant registry history is landlord only. |
Exhaustive
PenTestExhaustiveInstanceCsv
Jube.Test.Security.Exhaustive.PenTestExhaustiveInstanceCsv — 16 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
UploadThenConfirm_WorksEndToEndThroughTheRealPipelineAsync |
Fact | Upload then confirm works end to end through the real pipeline. |
CrossTenant_ReadConfirmDelete_BehaveLikeNotFound_AndChangeNothingAsync |
Fact | Cross tenant read confirm delete behave like not found and change nothing. |
InstanceCannotReferenceADatasetOfAnotherTenant_OrAnUnknownDataSource_MassAssignmentAsync |
Fact | Instance cannot reference a dataset of another tenant or an unknown data source mass assignment. |
Confirm_ServerOwnedFieldsInTheBody_AreNotHonouredAsync |
Fact | Confirm server owned fields in the body are not honoured. |
HostileFiles_AreRefusedWithoutServerErrors_AndStoreNothingAsync |
Theory | Hostile files are refused without server errors and store nothing. |
FormulaCells_AreStoredAsDataAndEchoedOnlyAsJsonAsync |
Fact | Formula cells are stored as data and echoed only as json. |
ContentTypeTampering_PartAndEnvelope_AreRefusedAsync |
Fact | Content type tampering part and envelope are refused. |
FileNames_TraversalAndDoubleExtensions_AreNeutralisedOrRefusedAsync |
Fact | File names traversal and double extensions are neutralised or refused. |
SuppliedNames_InjectionIsStoredAsData_MarkupIsRefusedAsync |
Fact | Supplied names injection is stored as data markup is refused. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
ChunkedUploadWithoutContentLength_IsStillBounded_AndNeverServerErrorsAsync |
Fact | Chunked upload without content length is still bounded and never server errors. |
VerbTampering_OnlyTheDeclaredMethodsWorkAsync |
Fact | Verb tampering only the declared methods work. |
RouteAndBodyAbuse_NeverServerErrorsAsync |
Fact | Route and body abuse never server errors. |
ConcurrentUploads_NeverServerError_AndEachStoresCompletelyOrNotAtAllAsync |
Fact | Concurrent uploads never server error and each stores completely or not at all. |
ErrorResponses_DoNotLeakPathsStackTracesOrSecretsAsync |
Fact | Error responses do not leak paths stack traces or secrets. |
PenTestExhaustiveInstanceJson
Jube.Test.Security.Exhaustive.PenTestExhaustiveInstanceJson — 20 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
UploadRawJsonThenConfirm_WorksEndToEndThroughTheRealPipelineAsync |
Fact | Upload raw json then confirm works end to end through the real pipeline. |
UploadColumnarAndMultipartJsonFile_AreAcceptedAsync |
Fact | Upload columnar and multipart json file are accepted. |
KindConfusion_ExtensionAndContentMustAgree_AndIdsDoNotCrossKindsAsync |
Fact | Kind confusion extension and content must agree and ids do not cross kinds. |
CrossTenant_ReadConfirmDelete_BehaveLikeNotFound_AndChangeNothingAsync |
Fact | Cross tenant read confirm delete behave like not found and change nothing. |
InstanceCannotReferenceAForeignOrAmbiguousJsonDataset_MassAssignmentAsync |
Fact | Instance cannot reference a foreign or ambiguous json dataset mass assignment. |
Confirm_ServerOwnedFieldsInTheBody_AreNotHonouredAsync |
Fact | Confirm server owned fields in the body are not honoured. |
HostileRawBodies_AreRefusedWithoutServerErrors_AndStoreNothingAsync |
Theory | Hostile raw bodies are refused without server errors and store nothing. |
HostileJsonFiles_ThroughMultipart_AreRefusedWithoutServerErrors_AndStoreNothingAsync |
Theory | Hostile json files through multipart are refused without server errors and store nothing. |
ContentTypeAndEncodingTampering_AreRefusedAsync |
Fact | Content type and encoding tampering are refused. |
SourceLabels_TraversalAndMarkupAreRefused_InjectionIsStoredAsDataAsync |
Fact | Source labels traversal and markup are refused injection is stored as data. |
ReservedAndPrototypeKeys_AreStoredAsDataWithSafeVariableNamesAsync |
Fact | Reserved and prototype keys are stored as data with safe variable names. |
SuppliedNames_InjectionIsStoredAsData_MarkupIsRefusedAsync |
Fact | Supplied names injection is stored as data markup is refused. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
ChunkedRawUploadWithoutContentLength_IsStillBounded_AndNeverServerErrorsAsync |
Fact | Chunked raw upload without content length is still bounded and never server errors. |
VerbTampering_OnlyTheDeclaredMethodsWorkAsync |
Fact | Verb tampering only the declared methods work. |
RouteAndBodyAbuse_NeverServerErrorsAsync |
Fact | Route and body abuse never server errors. |
ConcurrentUploads_NeverServerError_AndEachStoresCompletelyOrNotAtAllAsync |
Fact | Concurrent uploads never server error and each stores completely or not at all. |
ErrorResponses_DoNotLeakPathsStackTracesOrSecretsAsync |
Fact | Error responses do not leak paths stack traces or secrets. |
CombinedListing_ShowsBothKindsScopedToTheCallerTenantAsync |
Fact | Combined listing shows both kinds scoped to the caller tenant. |
Model
PenTestEntityAnalysisInlineScript
Jube.Test.Security.Model.PenTestEntityAnalysisInlineScript — 4 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
PermissionMatrix_OnlyThePermittedUserReadsTheCatalogueAsync |
Fact | Permission matrix only the permitted user reads the catalogue. |
MutatingVerbs_AreNotRoutedAndLeaveTheCatalogueUnchangedAsync |
Fact | Mutating verbs are not routed and leave the catalogue unchanged. |
HostileQueryStringsAndHeaders_NeverServerErrorAsync |
Fact | Hostile query strings and headers never server error. |
Catalogue_ContainsNoSecretsOrTenantDataAsync |
Fact | Catalogue contains no secrets or tenant data. |
PenTestEntityAnalysisModel
Jube.Test.Security.Model.PenTestEntityAnalysisModel — 14 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
Lifecycle_CreateReadUpdateDelete_HasSoftDeleteAndVersionSemanticsAsync |
Fact | Lifecycle create read update delete has soft delete and version semantics. |
CrossTenant_ReadUpdateDeleteReset_BehaveLikeNotFoundAsync |
Fact | Cross tenant read update delete reset behave like not found. |
CrossTenantParent_CreateUnderForeignParent_AndMoveToForeignParent_AreRefusedAsync |
Fact | Cross tenant parent create under foreign parent and move to foreign parent are refused. |
MassAssignment_ServerOwnedFields_AreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_EveryTextField_IsStoredOrRejectedAsDataAsync |
Fact | Injection every text field is stored or rejected as data. |
JsonColumns_RefuseInvalidJson_InsteadOfFailingInTheDatabaseAsync |
Fact | Json columns refuse invalid json instead of failing in the database. |
LengthBoundaries_AcceptTheMaximum_AndRefuseOneMoreAsync |
Fact | Length boundaries accept the maximum and refuse one more. |
TypeConfusionAndBoundaries_NeverProduceServerErrors_OrSideEffectsAsync |
Fact | Type confusion and boundaries never produce server errors or side effects. |
MalformedBodiesAndContentTypes_AreRejectedWithoutServerErrorsAsync |
Fact | Malformed bodies and content types are rejected without server errors. |
RouteAndQueryParameterAbuse_NeverServerErrors_OrTouchesRowsAsync |
Fact | Route and query parameter abuse never server errors or touches rows. |
LockedRows_CannotBeUpdatedOrDeletedAsync |
Fact | Locked rows cannot be updated or deleted. |
ConcurrentUpdatesAndDoubleSubmit_NeverServerError_AndStayConsistentAsync |
Fact | Concurrent updates and double submit never server error and stay consistent. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
PenTestEntityAnalysisModelAbstractionCalculation
Jube.Test.Security.Model.PenTestEntityAnalysisModelAbstractionCalculation — 14 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
Lifecycle_CreateReadUpdateDelete_HasSoftDeleteAndVersionSemanticsAsync |
Fact | Lifecycle create read update delete has soft delete and version semantics. |
CrossTenant_ReadUpdateDeleteReset_BehaveLikeNotFoundAsync |
Fact | Cross tenant read update delete reset behave like not found. |
CrossTenantParent_CreateUnderForeignParent_AndMoveToForeignParent_AreRefusedAsync |
Fact | Cross tenant parent create under foreign parent and move to foreign parent are refused. |
MassAssignment_ServerOwnedFields_AreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_EveryTextField_IsStoredOrRejectedAsDataAsync |
Fact | Injection every text field is stored or rejected as data. |
JsonColumns_RefuseInvalidJson_InsteadOfFailingInTheDatabaseAsync |
Fact | Json columns refuse invalid json instead of failing in the database. |
LengthBoundaries_AcceptTheMaximum_AndRefuseOneMoreAsync |
Fact | Length boundaries accept the maximum and refuse one more. |
TypeConfusionAndBoundaries_NeverProduceServerErrors_OrSideEffectsAsync |
Fact | Type confusion and boundaries never produce server errors or side effects. |
MalformedBodiesAndContentTypes_AreRejectedWithoutServerErrorsAsync |
Fact | Malformed bodies and content types are rejected without server errors. |
RouteAndQueryParameterAbuse_NeverServerErrors_OrTouchesRowsAsync |
Fact | Route and query parameter abuse never server errors or touches rows. |
LockedRows_CannotBeUpdatedOrDeletedAsync |
Fact | Locked rows cannot be updated or deleted. |
ConcurrentUpdatesAndDoubleSubmit_NeverServerError_AndStayConsistentAsync |
Fact | Concurrent updates and double submit never server error and stay consistent. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
PenTestEntityAnalysisModelAbstractionRule
Jube.Test.Security.Model.PenTestEntityAnalysisModelAbstractionRule — 14 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
Lifecycle_CreateReadUpdateDelete_HasSoftDeleteAndVersionSemanticsAsync |
Fact | Lifecycle create read update delete has soft delete and version semantics. |
CrossTenant_ReadUpdateDeleteReset_BehaveLikeNotFoundAsync |
Fact | Cross tenant read update delete reset behave like not found. |
CrossTenantParent_CreateUnderForeignParent_AndMoveToForeignParent_AreRefusedAsync |
Fact | Cross tenant parent create under foreign parent and move to foreign parent are refused. |
MassAssignment_ServerOwnedFields_AreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_EveryTextField_IsStoredOrRejectedAsDataAsync |
Fact | Injection every text field is stored or rejected as data. |
JsonColumns_RefuseInvalidJson_InsteadOfFailingInTheDatabaseAsync |
Fact | Json columns refuse invalid json instead of failing in the database. |
LengthBoundaries_AcceptTheMaximum_AndRefuseOneMoreAsync |
Fact | Length boundaries accept the maximum and refuse one more. |
TypeConfusionAndBoundaries_NeverProduceServerErrors_OrSideEffectsAsync |
Fact | Type confusion and boundaries never produce server errors or side effects. |
MalformedBodiesAndContentTypes_AreRejectedWithoutServerErrorsAsync |
Fact | Malformed bodies and content types are rejected without server errors. |
RouteAndQueryParameterAbuse_NeverServerErrors_OrTouchesRowsAsync |
Fact | Route and query parameter abuse never server errors or touches rows. |
LockedRows_CannotBeUpdatedOrDeletedAsync |
Fact | Locked rows cannot be updated or deleted. |
ConcurrentUpdatesAndDoubleSubmit_NeverServerError_AndStayConsistentAsync |
Fact | Concurrent updates and double submit never server error and stay consistent. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
PenTestEntityAnalysisModelActivationRule
Jube.Test.Security.Model.PenTestEntityAnalysisModelActivationRule — 14 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
Lifecycle_CreateReadUpdateDelete_HasSoftDeleteAndVersionSemanticsAsync |
Fact | Lifecycle create read update delete has soft delete and version semantics. |
CrossTenant_ReadUpdateDeleteReset_BehaveLikeNotFoundAsync |
Fact | Cross tenant read update delete reset behave like not found. |
CrossTenantParent_CreateUnderForeignParent_AndMoveToForeignParent_AreRefusedAsync |
Fact | Cross tenant parent create under foreign parent and move to foreign parent are refused. |
MassAssignment_ServerOwnedFields_AreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_EveryTextField_IsStoredOrRejectedAsDataAsync |
Fact | Injection every text field is stored or rejected as data. |
JsonColumns_RefuseInvalidJson_InsteadOfFailingInTheDatabaseAsync |
Fact | Json columns refuse invalid json instead of failing in the database. |
LengthBoundaries_AcceptTheMaximum_AndRefuseOneMoreAsync |
Fact | Length boundaries accept the maximum and refuse one more. |
TypeConfusionAndBoundaries_NeverProduceServerErrors_OrSideEffectsAsync |
Fact | Type confusion and boundaries never produce server errors or side effects. |
MalformedBodiesAndContentTypes_AreRejectedWithoutServerErrorsAsync |
Fact | Malformed bodies and content types are rejected without server errors. |
RouteAndQueryParameterAbuse_NeverServerErrors_OrTouchesRowsAsync |
Fact | Route and query parameter abuse never server errors or touches rows. |
LockedRows_CannotBeUpdatedOrDeletedAsync |
Fact | Locked rows cannot be updated or deleted. |
ConcurrentUpdatesAndDoubleSubmit_NeverServerError_AndStayConsistentAsync |
Fact | Concurrent updates and double submit never server error and stay consistent. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
PenTestEntityAnalysisModelActivationRuleOverride
Jube.Test.Security.Model.PenTestEntityAnalysisModelActivationRuleOverride — 14 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
Lifecycle_CreateReadUpdateDelete_HasSoftDeleteAndVersionSemanticsAsync |
Fact | Lifecycle create read update delete has soft delete and version semantics. |
CrossTenant_ReadUpdateDeleteReset_BehaveLikeNotFoundAsync |
Fact | Cross tenant read update delete reset behave like not found. |
CrossTenantParent_CreateUnderForeignParent_AndMoveToForeignParent_AreRefusedAsync |
Fact | Cross tenant parent create under foreign parent and move to foreign parent are refused. |
MassAssignment_ServerOwnedFields_AreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_EveryTextField_IsStoredOrRejectedAsDataAsync |
Fact | Injection every text field is stored or rejected as data. |
JsonColumns_RefuseInvalidJson_InsteadOfFailingInTheDatabaseAsync |
Fact | Json columns refuse invalid json instead of failing in the database. |
LengthBoundaries_AcceptTheMaximum_AndRefuseOneMoreAsync |
Fact | Length boundaries accept the maximum and refuse one more. |
TypeConfusionAndBoundaries_NeverProduceServerErrors_OrSideEffectsAsync |
Fact | Type confusion and boundaries never produce server errors or side effects. |
MalformedBodiesAndContentTypes_AreRejectedWithoutServerErrorsAsync |
Fact | Malformed bodies and content types are rejected without server errors. |
RouteAndQueryParameterAbuse_NeverServerErrors_OrTouchesRowsAsync |
Fact | Route and query parameter abuse never server errors or touches rows. |
LockedRows_CannotBeUpdatedOrDeletedAsync |
Fact | Locked rows cannot be updated or deleted. |
ConcurrentUpdatesAndDoubleSubmit_NeverServerError_AndStayConsistentAsync |
Fact | Concurrent updates and double submit never server error and stay consistent. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
PenTestEntityAnalysisModelBacktest
Jube.Test.Security.Model.PenTestEntityAnalysisModelBacktest — 6 tests.
| Test | Kind | Verifies |
|---|---|---|
GetRoutes_RoleMatrixAsync |
Fact | Get routes role matrix. |
PostRoutes_RoleMatrixAsync |
Fact | Post routes role matrix. |
AnotherTenantsModelsAndRunsBehaveLikeAbsentOnesAsync |
Fact | Another tenants models and runs behave like absent ones. |
MalformedBodies_AreRefusedWithoutAServerErrorAsync |
Fact | Malformed bodies are refused without a server error. |
HostileRuleText_IsNeverPersistedOrExecutedAsync |
Fact | Hostile rule text is never persisted or executed. |
MassAssignment_TheServerDecidesUserTenantAndStatusAsync |
Fact | Mass assignment the server decides user tenant and status. |
PenTestEntityAnalysisModelDictionary
Jube.Test.Security.Model.PenTestEntityAnalysisModelDictionary — 14 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
Lifecycle_CreateReadUpdateDelete_HasSoftDeleteAndVersionSemanticsAsync |
Fact | Lifecycle create read update delete has soft delete and version semantics. |
CrossTenant_ReadUpdateDeleteReset_BehaveLikeNotFoundAsync |
Fact | Cross tenant read update delete reset behave like not found. |
CrossTenantParent_CreateUnderForeignParent_AndMoveToForeignParent_AreRefusedAsync |
Fact | Cross tenant parent create under foreign parent and move to foreign parent are refused. |
MassAssignment_ServerOwnedFields_AreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_EveryTextField_IsStoredOrRejectedAsDataAsync |
Fact | Injection every text field is stored or rejected as data. |
JsonColumns_RefuseInvalidJson_InsteadOfFailingInTheDatabaseAsync |
Fact | Json columns refuse invalid json instead of failing in the database. |
LengthBoundaries_AcceptTheMaximum_AndRefuseOneMoreAsync |
Fact | Length boundaries accept the maximum and refuse one more. |
TypeConfusionAndBoundaries_NeverProduceServerErrors_OrSideEffectsAsync |
Fact | Type confusion and boundaries never produce server errors or side effects. |
MalformedBodiesAndContentTypes_AreRejectedWithoutServerErrorsAsync |
Fact | Malformed bodies and content types are rejected without server errors. |
RouteAndQueryParameterAbuse_NeverServerErrors_OrTouchesRowsAsync |
Fact | Route and query parameter abuse never server errors or touches rows. |
LockedRows_CannotBeUpdatedOrDeletedAsync |
Fact | Locked rows cannot be updated or deleted. |
ConcurrentUpdatesAndDoubleSubmit_NeverServerError_AndStayConsistentAsync |
Fact | Concurrent updates and double submit never server error and stay consistent. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
PenTestEntityAnalysisModelDictionaryKvp
Jube.Test.Security.Model.PenTestEntityAnalysisModelDictionaryKvp — 20 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
Lifecycle_CreateReadUpdateDelete_HasSoftDeleteAndVersionSemanticsAsync |
Fact | Lifecycle create read update delete has soft delete and version semantics. |
CrossTenant_ReadUpdateDeleteReset_BehaveLikeNotFoundAsync |
Fact | Cross tenant read update delete reset behave like not found. |
CrossTenantParent_CreateUnderForeignParent_AndMoveToForeignParent_AreRefusedAsync |
Fact | Cross tenant parent create under foreign parent and move to foreign parent are refused. |
MassAssignment_ServerOwnedFields_AreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_EveryTextField_IsStoredOrRejectedAsDataAsync |
Fact | Injection every text field is stored or rejected as data. |
JsonColumns_RefuseInvalidJson_InsteadOfFailingInTheDatabaseAsync |
Fact | Json columns refuse invalid json instead of failing in the database. |
LengthBoundaries_AcceptTheMaximum_AndRefuseOneMoreAsync |
Fact | Length boundaries accept the maximum and refuse one more. |
TypeConfusionAndBoundaries_NeverProduceServerErrors_OrSideEffectsAsync |
Fact | Type confusion and boundaries never produce server errors or side effects. |
MalformedBodiesAndContentTypes_AreRejectedWithoutServerErrorsAsync |
Fact | Malformed bodies and content types are rejected without server errors. |
RouteAndQueryParameterAbuse_NeverServerErrors_OrTouchesRowsAsync |
Fact | Route and query parameter abuse never server errors or touches rows. |
LockedRows_CannotBeUpdatedOrDeletedAsync |
Fact | Locked rows cannot be updated or deleted. |
ConcurrentUpdatesAndDoubleSubmit_NeverServerError_AndStayConsistentAsync |
Fact | Concurrent updates and double submit never server error and stay consistent. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
CsvUpload_AuthorisationAndCrossTenantDictionary_AreRefusedAsync |
Fact | Csv upload authorisation and cross tenant dictionary are refused. |
CsvUpload_ImportsCellsAsData_IncludingFormulaAndMarkupKeysAsync |
Fact | Csv upload imports cells as data including formula and markup keys. |
CsvUpload_MalformedRows_AreSkippedWithoutServerErrorAsync |
Fact | Csv upload malformed rows are skipped without server error. |
CsvUpload_HostileFileNames_AreStoredSanitisedAndNeverUsedAsPathsAsync |
Fact | Csv upload hostile file names are stored sanitised and never used as paths. |
CsvUpload_MultipartAttacks_AreRefusedWithoutServerErrorsAsync |
Fact | Csv upload multipart attacks are refused without server errors. |
CsvUpload_DictionaryIdAsFormField_IsAcceptedAndTenantScopedAsync |
Fact | Csv upload dictionary id as form field is accepted and tenant scoped. |
PenTestEntityAnalysisModelGatewayRule
Jube.Test.Security.Model.PenTestEntityAnalysisModelGatewayRule — 14 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
Lifecycle_CreateReadUpdateDelete_HasSoftDeleteAndVersionSemanticsAsync |
Fact | Lifecycle create read update delete has soft delete and version semantics. |
CrossTenant_ReadUpdateDeleteReset_BehaveLikeNotFoundAsync |
Fact | Cross tenant read update delete reset behave like not found. |
CrossTenantParent_CreateUnderForeignParent_AndMoveToForeignParent_AreRefusedAsync |
Fact | Cross tenant parent create under foreign parent and move to foreign parent are refused. |
MassAssignment_ServerOwnedFields_AreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_EveryTextField_IsStoredOrRejectedAsDataAsync |
Fact | Injection every text field is stored or rejected as data. |
JsonColumns_RefuseInvalidJson_InsteadOfFailingInTheDatabaseAsync |
Fact | Json columns refuse invalid json instead of failing in the database. |
LengthBoundaries_AcceptTheMaximum_AndRefuseOneMoreAsync |
Fact | Length boundaries accept the maximum and refuse one more. |
TypeConfusionAndBoundaries_NeverProduceServerErrors_OrSideEffectsAsync |
Fact | Type confusion and boundaries never produce server errors or side effects. |
MalformedBodiesAndContentTypes_AreRejectedWithoutServerErrorsAsync |
Fact | Malformed bodies and content types are rejected without server errors. |
RouteAndQueryParameterAbuse_NeverServerErrors_OrTouchesRowsAsync |
Fact | Route and query parameter abuse never server errors or touches rows. |
LockedRows_CannotBeUpdatedOrDeletedAsync |
Fact | Locked rows cannot be updated or deleted. |
ConcurrentUpdatesAndDoubleSubmit_NeverServerError_AndStayConsistentAsync |
Fact | Concurrent updates and double submit never server error and stay consistent. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
PenTestEntityAnalysisModelHttpAdaptation
Jube.Test.Security.Model.PenTestEntityAnalysisModelHttpAdaptation — 15 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
Lifecycle_CreateReadUpdateDelete_HasSoftDeleteAndVersionSemanticsAsync |
Fact | Lifecycle create read update delete has soft delete and version semantics. |
CrossTenant_ReadUpdateDeleteReset_BehaveLikeNotFoundAsync |
Fact | Cross tenant read update delete reset behave like not found. |
CrossTenantParent_CreateUnderForeignParent_AndMoveToForeignParent_AreRefusedAsync |
Fact | Cross tenant parent create under foreign parent and move to foreign parent are refused. |
MassAssignment_ServerOwnedFields_AreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_EveryTextField_IsStoredOrRejectedAsDataAsync |
Fact | Injection every text field is stored or rejected as data. |
JsonColumns_RefuseInvalidJson_InsteadOfFailingInTheDatabaseAsync |
Fact | Json columns refuse invalid json instead of failing in the database. |
LengthBoundaries_AcceptTheMaximum_AndRefuseOneMoreAsync |
Fact | Length boundaries accept the maximum and refuse one more. |
TypeConfusionAndBoundaries_NeverProduceServerErrors_OrSideEffectsAsync |
Fact | Type confusion and boundaries never produce server errors or side effects. |
MalformedBodiesAndContentTypes_AreRejectedWithoutServerErrorsAsync |
Fact | Malformed bodies and content types are rejected without server errors. |
RouteAndQueryParameterAbuse_NeverServerErrors_OrTouchesRowsAsync |
Fact | Route and query parameter abuse never server errors or touches rows. |
LockedRows_CannotBeUpdatedOrDeletedAsync |
Fact | Locked rows cannot be updated or deleted. |
ConcurrentUpdatesAndDoubleSubmit_NeverServerError_AndStayConsistentAsync |
Fact | Concurrent updates and double submit never server error and stay consistent. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
HttpEndpoint_OnlyPlainPathsOnTheConfiguredHost_AreAcceptedAsync |
Fact | Http endpoint only plain paths on the configured host are accepted. |
PenTestExhaustiveSearchInstance
Jube.Test.Security.Model.PenTestExhaustiveSearchInstance — 18 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrix_RefusesEveryone_ButThePermittedUserAsync |
Fact | Authentication and authorisation matrix refuses everyone but the permitted user. |
Lifecycle_CreateReadUpdateDelete_HasSoftDeleteAndVersionSemanticsAsync |
Fact | Lifecycle create read update delete has soft delete and version semantics. |
CrossTenant_ReadUpdateDeleteReset_BehaveLikeNotFoundAsync |
Fact | Cross tenant read update delete reset behave like not found. |
CrossTenantParent_CreateUnderForeignParent_AndMoveToForeignParent_AreRefusedAsync |
Fact | Cross tenant parent create under foreign parent and move to foreign parent are refused. |
MassAssignment_ServerOwnedFields_AreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_EveryTextField_IsStoredOrRejectedAsDataAsync |
Fact | Injection every text field is stored or rejected as data. |
JsonColumns_RefuseInvalidJson_InsteadOfFailingInTheDatabaseAsync |
Fact | Json columns refuse invalid json instead of failing in the database. |
LengthBoundaries_AcceptTheMaximum_AndRefuseOneMoreAsync |
Fact | Length boundaries accept the maximum and refuse one more. |
TypeConfusionAndBoundaries_NeverProduceServerErrors_OrSideEffectsAsync |
Fact | Type confusion and boundaries never produce server errors or side effects. |
MalformedBodiesAndContentTypes_AreRejectedWithoutServerErrorsAsync |
Fact | Malformed bodies and content types are rejected without server errors. |
RouteAndQueryParameterAbuse_NeverServerErrors_OrTouchesRowsAsync |
Fact | Route and query parameter abuse never server errors or touches rows. |
LockedRows_CannotBeUpdatedOrDeletedAsync |
Fact | Locked rows cannot be updated or deleted. |
ConcurrentUpdatesAndDoubleSubmit_NeverServerError_AndStayConsistentAsync |
Fact | Concurrent updates and double submit never server error and stay consistent. |
OversizedBodies_AreRefusedQuicklyAsync |
Fact | Oversized bodies are refused quickly. |
Stop_ForeignGuid_LooksLikeMissing_AndDoesNotTouchTheRowAsync |
Fact | Stop foreign guid looks like missing and does not touch the row. |
SetActive_ForeignId_LooksLikeMissing_AndDoesNotTouchTheRowAsync |
Fact | Set active foreign id looks like missing and does not touch the row. |
FilterDefinition_MustBeAPlainBooleanExpression_AndValidJsonAsync |
Fact | Filter definition must be a plain boolean expression and valid json. |
AnomalyDetectorFields_AreValidated_AndTheReportIsServerWrittenAsync |
Fact | Anomaly detector fields are validated and the report is server written. |
PenTestModelInlineFunction
Jube.Test.Security.Model.PenTestModelInlineFunction — 11 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
PenTestModelInlineScript
Jube.Test.Security.Model.PenTestModelInlineScript — 13 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
InlineScriptReference_MustExistAndBeAnIntegerAsync |
Fact | Inline script reference must exist and be an integer. |
CreatedRowExposesNoScriptSourceAsync |
Fact | Created row exposes no script source. |
PenTestModelIntegrityQueries
Jube.Test.Security.Model.PenTestModelIntegrityQueries — 4 tests.
| Test | Kind | Verifies |
|---|---|---|
ModelRoutes_RoleMatrixAsync |
Fact | Model routes role matrix. |
AnotherTenantsModelBehavesLikeAnAbsentModelAsync |
Fact | Another tenants model behaves like an absent model. |
RouteParameterTampering_IsRefusedQuietlyAsync |
Fact | Route parameter tampering is refused quietly. |
OperatorCatalogue_IsAuthenticatedStaticMetadataOnlyAsync |
Fact | Operator catalogue is authenticated static metadata only. |
PenTestModelList
Jube.Test.Security.Model.PenTestModelList — 11 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
PenTestModelListValue
Jube.Test.Security.Model.PenTestModelListValue — 19 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
ByParentRead_WithoutAnId_IsAnEmptyListNotABadRequestAsync |
Fact | By parent read without an id is an empty list not a bad request. |
Values_ExpiryDatesDuplicatesAndUnicodeAsync |
Fact | Values expiry dates duplicates and unicode. |
Values_DeleteByIdIsTenantScopedAndBodyIdIsIgnoredAsync |
Fact | Values delete by id is tenant scoped and body id is ignored. |
Csv_AuthenticationAuthorisationAndTenantScopeAsync |
Fact | Csv authentication authorisation and tenant scope. |
Csv_FileNamesTraversalAndContentTypesAsync |
Fact | Csv file names traversal and content types. |
Csv_ContentAttacksAreRowErrorsOrInertDataAsync |
Fact | Csv content attacks are row errors or inert data. |
Csv_HugeFilesManyFilesAndAtomicRollbackAsync |
Fact | Csv huge files many files and atomic rollback. |
Csv_MalformedMultipartAndCsrfAsync |
Fact | Csv malformed multipart and csrf. |
PenTestModelOverride
Jube.Test.Security.Model.PenTestModelOverride — 12 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
ExpiryDate_PastFarFutureAndCrossTenantAreHandledAsync |
Fact | Expiry date past far future and cross tenant are handled. |
PenTestModelReprocessingRule
Jube.Test.Security.Model.PenTestModelReprocessingRule — 12 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
Window_ReprocessingValueCannotOverflowTheEngineDateMathsAsync |
Fact | Window reprocessing value cannot overflow the engine date maths. |
PenTestModelReprocessingRuleInstance
Jube.Test.Security.Model.PenTestModelReprocessingRuleInstance — 14 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
Trigger_OnlyForOwnTenantsRuleAndServerAssignsRunStateAsync |
Fact | Trigger only for own tenants rule and server assigns run state. |
RunState_EnumsCountsAndDatesAreBoundedAsync |
Fact | Run state enums counts and dates are bounded. |
Update_CannotHijackOrResurrectAnInstanceAsync |
Fact | Update cannot hijack or resurrect an instance. |
PenTestModelRequestXPath
Jube.Test.Security.Model.PenTestModelRequestXPath — 14 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
Window_SearchKeyWindowsAndLimitsAreBoundedAsync |
Fact | Window search key windows and limits are bounded. |
ExtraRoutes_ForeignParentsAndHostileArgumentsAreInertAsync |
Fact | Extra routes foreign parents and hostile arguments are inert. |
XPathExpressions_AreStoredAsInertDataAsync |
Fact | X path expressions are stored as inert data. |
PenTestModelSanction
Jube.Test.Security.Model.PenTestModelSanction — 12 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
Window_CacheValueCannotOverflowTheEngineDateMathsAsync |
Fact | Window cache value cannot overflow the engine date maths. |
PenTestModelTag
Jube.Test.Security.Model.PenTestModelTag — 11 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
PenTestModelTtlCounter
Jube.Test.Security.Model.PenTestModelTtlCounter — 13 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRouteEveryRoleAsync |
Fact | Matrix every route every role. |
Bola_ForeignTenantIdsBehaveLikeAbsentIdsAsync |
Fact | Bola foreign tenant ids behave like absent ids. |
Bola_ForeignParentReferencesAreRefusedAsync |
Fact | Bola foreign parent references are refused. |
MassAssignment_ServerOwnedFieldsAreNotHonouredAsync |
Fact | Mass assignment server owned fields are not honoured. |
Injection_StringFieldsStayDataAndRoundTripAsync |
Fact | Injection string fields stay data and round trip. |
Injection_RouteAndQueryParametersAsync |
Fact | Injection route and query parameters. |
TypeConfusion_EveryFieldEveryRawValueAsync |
Fact | Type confusion every field every raw value. |
RequestStructure_MalformedBodiesAndContentTypesAsync |
Fact | Request structure malformed bodies and content types. |
BusinessFlow_DeleteReplayAndSoftDeleteAreConsistentAsync |
Fact | Business flow delete replay and soft delete are consistent. |
Limits_MaxLengthOversizeAndHostileExpressionsAsync |
Fact | Limits max length oversize and hostile expressions. |
Consumption_ListsAndParametersAreBoundedAsync |
Fact | Consumption lists and parameters are bounded. |
Window_TtlCounterValueCannotOverflowTheEngineDateMathsAsync |
Fact | Window ttl counter value cannot overflow the engine date maths. |
ByGuid_ForeignAndMalformedGuidsBehaveLikeAbsentAsync |
Fact | By guid foreign and malformed guids behave like absent. |
Monitoring
PenTestOpenTelemetryExclude
Jube.Test.Security.Monitoring.PenTestOpenTelemetryExclude — 9 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRoleAndCredentialFormAsync |
Theory | Matrix every role and credential form. |
Authorised_ListAndGet_ShapeAndIdSemanticsAsync |
Fact | Authorised list and get shape and id semantics. |
Create_MassAssignmentAndForbiddenFieldsAreNotHonouredAsync |
Fact | Create mass assignment and forbidden fields are not honoured. |
Update_MassAssignmentAndForbiddenFieldsAreNotHonouredAsync |
Fact | Update mass assignment and forbidden fields are not honoured. |
Lifecycle_LockedDeletedReplayAndConcurrencyAsync |
Fact | Lifecycle locked deleted replay and concurrency. |
Name_InjectionCharactersRoundTripFaithfullyOrAreRejectedAsync |
Fact | Name injection characters round trip faithfully or are rejected. |
Bodies_TypeConfusionBoundariesAndMalformedInputNeverServerErrorAsync |
Fact | Bodies type confusion boundaries and malformed input never server error. |
Name_LengthBoundariesAndUpdateValidationAsync |
Fact | Name length boundaries and update validation. |
Verbs_UnsupportedMethodsAndRouteTricksAsync |
Fact | Verbs unsupported methods and route tricks. |
PenTestOpenTelemetryLogCounter
Jube.Test.Security.Monitoring.PenTestOpenTelemetryLogCounter — 8 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
Matrix_EveryRoleAndCredentialFormAsync |
Theory | Matrix every role and credential form. |
Authorised_ReadShapeAndUnknownIdsAsync |
Fact | Authorised read shape and unknown ids. |
MassAssignment_CreateAndUpdateAsync |
Fact | Mass assignment create and update. |
Name_MustBeStrictInstrumentNameIncludingTrailingNewlineAsync |
Fact | Name must be strict instrument name including trailing newline. |
Regex_ValidationBoundsAndInjectionAsync |
Fact | Regex validation bounds and injection. |
Lifecycle_LockedDeletedReplayInjectionAndConcurrencyAsync |
Fact | Lifecycle locked deleted replay injection and concurrency. |
Bodies_TypeConfusionAndMalformedInputNeverServerErrorAsync |
Fact | Bodies type confusion and malformed input never server error. |
Regex_StoredMarkupAndSqlAreReturnedAsInertDataAsync |
Fact | Regex stored markup and sql are returned as inert data. |
PenTestPlatformMonitoring
Jube.Test.Security.Monitoring.PenTestPlatformMonitoring — 4 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthorizationMatrixForAreaAsync |
Theory | Authorization matrix for area. |
ParameterAbuseForAreaAsync |
Theory | Parameter abuse for area. |
ConsumptionAndVerbsForAreaAsync |
Theory | Consumption and verbs for area. |
PatroniClusterEvent_StoredCredentialsAreRedactedAndMarkupIsInertAsync |
Fact | Patroni cluster event stored credentials are redacted and markup is inert. |
PenTestPostgresMonitoring
Jube.Test.Security.Monitoring.PenTestPostgresMonitoring — 6 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthorizationMatrixForAreaAsync |
Theory | Authorization matrix for area. |
ParameterAbuseForAreaAsync |
Theory | Parameter abuse for area. |
ConsumptionAndVerbsForAreaAsync |
Theory | Consumption and verbs for area. |
PostgresActivity_LiveQueryCredentialsAreRedactedAsync |
Fact | Postgres activity live query credentials are redacted. |
PostgresLogEntry_StoredCredentialsAreRedactedAndMarkupIsInertAsync |
Fact | Postgres log entry stored credentials are redacted and markup is inert. |
SortFieldAndSortDirectionCannotAlterTheRowSetAsync |
Theory | Sort field and sort direction cannot alter the row set. |
PenTestQueryParsing
Jube.Test.Security.Monitoring.PenTestQueryParsing — 4 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
ParseNullableInt_TreatsHostileTextAsNoFilter |
Theory | Parse nullable int treats hostile text as no filter. |
ParseNullableGuid_OnlyAcceptsGuids |
Theory | Parse nullable guid only accepts guids. |
Parsers_NeverThrowAndAreCultureIndependentAsync |
Fact | Parsers never throw and are culture independent. |
TypeFilterEndpoints_GarbageBehavesLikeNoFilterAndNeverErrorsAsync |
Theory | Type filter endpoints garbage behaves like no filter and never errors. |
PenTestRedisMonitoring
Jube.Test.Security.Monitoring.PenTestRedisMonitoring — 5 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthorizationMatrixForAreaAsync |
Theory | Authorization matrix for area. |
ParameterAbuseForAreaAsync |
Theory | Parameter abuse for area. |
ConsumptionAndVerbsForAreaAsync |
Theory | Consumption and verbs for area. |
RedisSlowOperation_AuthenticationArgumentsAreRedactedAsync |
Fact | Redis slow operation authentication arguments are redacted. |
RedisConnectionAndSentinelEvents_CredentialsAreRedactedAsync |
Fact | Redis connection and sentinel events credentials are redacted. |
PenTestSensitiveTextRedactor
Jube.Test.Security.Monitoring.PenTestSensitiveTextRedactor — 6 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
Redact_MasksCredentialShapes |
Theory | Redact masks credential shapes. |
RedactRedisCommand_MasksCredentialArguments |
Theory | Redact redis command masks credential arguments. |
RedactRedisKeyName_AuthKeyIsTheCredential |
Theory | Redact redis key name auth key is the credential. |
Redact_LeavesOrdinaryTextUntouched |
Theory | Redact leaves ordinary text untouched. |
Redact_NullIsNull |
Fact | Redact null is null. |
Redact_HostileInputIsFastAndNeverThrows |
Fact | Redact hostile input is fast and never throws. |
Observability
PenTestObservabilityContent
Jube.Test.Security.Observability.PenTestObservabilityContent — 4 tests.
| Test | Kind | Verifies |
|---|---|---|
StoredHostileText_IsReturnedAsInertJsonDataAsync |
Theory | Stored hostile text is returned as inert json data. |
SecretsInStoredText_AreNotReturnedAsync |
Theory | Secrets in stored text are not returned. |
TenantScopedRows_AreLandlordOnlyAsync |
Theory | Tenant scoped rows are landlord only. |
ModelInvokeWarning_IsLandlordOnlyAsync |
Fact | Model invoke warning is landlord only. |
PenTestObservabilityLists
Jube.Test.Security.Observability.PenTestObservabilityLists — 8 tests.
| Test | Kind | Verifies |
|---|---|---|
PermissionMatrix_MatchesSpecAsync |
Theory | Permission matrix matches spec. |
NonGetVerbs_AreNotServedAsync |
Theory | Non get verbs are not served. |
SortFieldAndDirection_AreWhitelistedNotConcatenatedAsync |
Theory | Sort field and direction are whitelisted not concatenated. |
Search_IsInertData_NeverSqlOrMarkupAsync |
Theory | Search is inert data never sql or markup. |
IdFilters_TypeConfusionAndInjectionAsync |
Theory | Id filters type confusion and injection. |
Paging_LimitAbuse_IsClampedAndBoundedAsync |
Theory | Paging limit abuse is clamped and bounded. |
DateRangeAndSample_ParameterAbuseAsync |
Theory | Date range and sample parameter abuse. |
QueryStructure_PollutionOversizeAndRouteVariantsAsync |
Theory | Query structure pollution oversize and route variants. |
Query case
PenTestCaseByCaseKeyValue
Jube.Test.Security.QueryCase.PenTestCaseByCaseKeyValue — 8 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
ExactMatchOnlyAndTenantIsolationForIdenticalKeyValueAsync |
Fact | Exact match only and tenant isolation for identical key value. |
CaseVisibilityRequiresWorkflowRoleAndStatusRoleAndLiveParentsAsync |
Fact | Case visibility requires workflow role and status role and live parents. |
InjectionInKeyAndValueNeverMatchesLeaksOrDelaysAsync |
Fact | Injection in key and value never matches leaks or delays. |
ParameterTypeConfusionAndBoundariesAsync |
Fact | Parameter type confusion and boundaries. |
ResponseExposesOnlyTheDocumentedPropertiesAsync |
Fact | Response exposes only the documented properties. |
OtherVerbsNeverSucceedAndDoNotChangeTheRowSetAsync |
Fact | Other verbs never succeed and do not change the row set. |
ReplayAndConcurrentRequestsAreConsistentAsync |
Fact | Replay and concurrent requests are consistent. |
PenTestCaseById
Jube.Test.Security.QueryCase.PenTestCaseById — 7 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixWritesEventsOnlyForAuthorisedViewsAsync |
Fact | Authentication and authorisation matrix writes events only for authorised views. |
UnknownForeignAndInvisibleCasesAreIndistinguishableNotFoundAsync |
Fact | Unknown foreign and invisible cases are indistinguishable not found. |
ViewingRecordsOneEventPerViewAttributedToTheAuthenticatedUserOnlyAsync |
Fact | Viewing records one event per view attributed to the authenticated user only. |
RouteParameterAbuseIsRefusedWithoutSideEffectsAsync |
Fact | Route parameter abuse is refused without side effects. |
OtherVerbsNeverSucceedAndWriteNoEventsAsync |
Fact | Other verbs never succeed and write no events. |
StoredPayloadIsReturnedAsInertDataAndCorruptJsonDoesNotCrashAsync |
Fact | Stored payload is returned as inert data and corrupt json does not crash. |
ResponseShapeAndHeadersAsync |
Fact | Response shape and headers. |
PenTestCaseEventByCaseKeyValue
Jube.Test.Security.QueryCase.PenTestCaseEventByCaseKeyValue — 8 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
ExactMatchOnlyAndTenantIsolationForIdenticalKeyValueAsync |
Fact | Exact match only and tenant isolation for identical key value. |
CaseVisibilityRequiresWorkflowRoleAndStatusRoleAndLiveParentsAsync |
Fact | Case visibility requires workflow role and status role and live parents. |
InjectionInKeyAndValueNeverMatchesLeaksOrDelaysAsync |
Fact | Injection in key and value never matches leaks or delays. |
ParameterTypeConfusionAndBoundariesAsync |
Fact | Parameter type confusion and boundaries. |
ResponseExposesOnlyTheDocumentedPropertiesAsync |
Fact | Response exposes only the documented properties. |
OtherVerbsNeverSucceedAndDoNotChangeTheRowSetAsync |
Fact | Other verbs never succeed and do not change the row set. |
ReplayAndConcurrentRequestsAreConsistentAsync |
Fact | Replay and concurrent requests are consistent. |
PenTestCaseNoteByCaseKeyValue
Jube.Test.Security.QueryCase.PenTestCaseNoteByCaseKeyValue — 8 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
ExactMatchOnlyAndTenantIsolationForIdenticalKeyValueAsync |
Fact | Exact match only and tenant isolation for identical key value. |
CaseVisibilityRequiresWorkflowRoleAndStatusRoleAndLiveParentsAsync |
Fact | Case visibility requires workflow role and status role and live parents. |
InjectionInKeyAndValueNeverMatchesLeaksOrDelaysAsync |
Fact | Injection in key and value never matches leaks or delays. |
ParameterTypeConfusionAndBoundariesAsync |
Fact | Parameter type confusion and boundaries. |
ResponseExposesOnlyTheDocumentedPropertiesAsync |
Fact | Response exposes only the documented properties. |
OtherVerbsNeverSucceedAndDoNotChangeTheRowSetAsync |
Fact | Other verbs never succeed and do not change the row set. |
ReplayAndConcurrentRequestsAreConsistentAsync |
Fact | Replay and concurrent requests are consistent. |
PenTestCaseWorkflowDisplayExecution
Jube.Test.Security.QueryCase.PenTestCaseWorkflowDisplayExecution — 6 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
CaseDisplayAndTenantIsolationIsUniformAsync |
Fact | Case display and tenant isolation is uniform. |
PayloadValuesAreHtmlEncodedButTheTemplateStaysMarkupAsync |
Fact | Payload values are html encoded but the template stays markup. |
UnusualStoredPayloadShapesNeverCrashTheRendererAsync |
Fact | Unusual stored payload shapes never crash the renderer. |
RequestBodyTypeConfusionAndMassAssignmentNeverCrashOrOverrideAsync |
Fact | Request body type confusion and mass assignment never crash or override. |
OtherVerbsNeverSucceedAndReplayIsConsistentAsync |
Fact | Other verbs never succeed and replay is consistent. |
PenTestCaseWorkflowFormEntryByCaseKeyValue
Jube.Test.Security.QueryCase.PenTestCaseWorkflowFormEntryByCaseKeyValue — 8 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
ExactMatchOnlyAndTenantIsolationForIdenticalKeyValueAsync |
Fact | Exact match only and tenant isolation for identical key value. |
CaseVisibilityRequiresWorkflowRoleAndStatusRoleAndLiveParentsAsync |
Fact | Case visibility requires workflow role and status role and live parents. |
InjectionInKeyAndValueNeverMatchesLeaksOrDelaysAsync |
Fact | Injection in key and value never matches leaks or delays. |
ParameterTypeConfusionAndBoundariesAsync |
Fact | Parameter type confusion and boundaries. |
ResponseExposesOnlyTheDocumentedPropertiesAsync |
Fact | Response exposes only the documented properties. |
OtherVerbsNeverSucceedAndDoNotChangeTheRowSetAsync |
Fact | Other verbs never succeed and do not change the row set. |
ReplayAndConcurrentRequestsAreConsistentAsync |
Fact | Replay and concurrent requests are consistent. |
PenTestCaseWorkflowMacroExecution
Jube.Test.Security.QueryCase.PenTestCaseWorkflowMacroExecution — 8 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixReachesTheOutboundCallOnlyWhenAuthorisedAsync |
Fact | Authentication and authorisation matrix reaches the outbound call only when authorised. |
CaseMacroAndTenantIsolationNeverReachesTheOutboundCallAsync |
Fact | Case macro and tenant isolation never reaches the outbound call. |
OutboundPostCarriesTheCaseButNotTheRawJsonAndEchoIsMinimalAsync |
Fact | Outbound post carries the case but not the raw json and echo is minimal. |
HostilePayloadValuesInTheEndpointCannotCrashOrInjectHeadersAsync |
Fact | Hostile payload values in the endpoint cannot crash or inject headers. |
ConfiguredEndpointSchemesAndUnreachableHostsAreSwallowedNotEscalatedAsync |
Fact | Configured endpoint schemes and unreachable hosts are swallowed not escalated. |
UnusualStoredPayloadShapesStillExecuteTheMacroAsync |
Fact | Unusual stored payload shapes still execute the macro. |
RequestBodyTypeConfusionAndMassAssignmentNeverCrashOrExecuteTheWrongMacroAsync |
Fact | Request body type confusion and mass assignment never crash or execute the wrong macro. |
VerbTamperingReplayAndConcurrencyAreConsistentAsync |
Fact | Verb tampering replay and concurrency are consistent. |
PenTestEntityAnalysisModelActivationRuleOverrideQuery
Jube.Test.Security.QueryCase.PenTestEntityAnalysisModelActivationRuleOverrideQuery — 6 tests. Category: PenTest.
Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
TenantIsolationForIdenticalKeysAndForeignModelGuidsAsync |
Fact | Tenant isolation for identical keys and foreign model guids. |
OverrideStateRulesAreExactAndLiveOnlyAsync |
Fact | Override state rules are exact and live only. |
InjectionInKeyAndValueNeverMatchesLeaksOrDelaysAsync |
Fact | Injection in key and value never matches leaks or delays. |
ParameterBoundariesAndTypeConfusionAsync |
Fact | Parameter boundaries and type confusion. |
ResponseShapeVerbsAndReplayAsync |
Fact | Response shape verbs and replay. |
PenTestEntityAnalysisModelOverrideQuery
Jube.Test.Security.QueryCase.PenTestEntityAnalysisModelOverrideQuery — 6 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
TenantIsolationForIdenticalKeysAndForeignModelGuidsAsync |
Fact | Tenant isolation for identical keys and foreign model guids. |
OverrideStateRulesAreExactAndLiveOnlyAsync |
Fact | Override state rules are exact and live only. |
InjectionInKeyAndValueNeverMatchesLeaksOrDelaysAsync |
Fact | Injection in key and value never matches leaks or delays. |
ParameterBoundariesAndTypeConfusionAsync |
Fact | Parameter boundaries and type confusion. |
ResponseShapeVerbsAndReplayAsync |
Fact | Response shape verbs and replay. |
PenTestEntityAnalysisModelOverrideValuesQuery
Jube.Test.Security.QueryCase.PenTestEntityAnalysisModelOverrideValuesQuery — 5 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
IsPermissionedAndTenantScopedAsync |
Fact | Is permissioned and tenant scoped. |
ResponseShapeAndVerbsAsync |
Fact | Response shape and verbs. |
HostileOverrideKeysNeverRunOrLeakAsync |
Fact | Hostile override keys never run or leak. |
LimitIsClampedAndNeverFaultsAsync |
Fact | Limit is clamped and never faults. |
OnlyLiveOverridesAreListedAsync |
Fact | Only live overrides are listed. |
PenTestEntityAnalysisModelSynchronisationNodeStatusEntries
Jube.Test.Security.QueryCase.PenTestEntityAnalysisModelSynchronisationNodeStatusEntries — 4 tests. Category: PenTest.
Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
EachTenantSeesOnlyItsOwnFreshNodesAndParametersCannotChangeTheTenantAsync |
Fact | Each tenant sees only its own fresh nodes and parameters cannot change the tenant. |
ShapeVerbsAndReplayAreSafeAsync |
Fact | Shape verbs and replay are safe. |
TenantWithoutAScheduleGetsNoContentAndNothingOfAnotherTenantAsync |
Fact | Tenant without a schedule gets no content and nothing of another tenant. |
PenTestEntityAnalysisPotentialMultiPartStringNames
Jube.Test.Security.QueryCase.PenTestEntityAnalysisPotentialMultiPartStringNames — 5 tests. Category: PenTest.
Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixForBothOverloadsAsync |
Fact | Authentication and authorisation matrix for both overloads. |
CrossTenantModelReferencesAreIndistinguishableFromUnknownOnesAsync |
Fact | Cross tenant model references are indistinguishable from unknown ones. |
OnlyLiveStringFieldsAndFunctionsAreListedSortedAndDistinctAsync |
Fact | Only live string fields and functions are listed sorted and distinct. |
RouteParameterAbuseIsRefusedOrEmptyNeverAnErrorAsync |
Fact | Route parameter abuse is refused or empty never an error. |
ReplayAndConcurrencyAreConsistentPerTenantAsync |
Fact | Replay and concurrency are consistent per tenant. |
PenTestEntityAnalysisRequestXPathInlineScriptNamesByStringIntegerFloatDataType
Jube.Test.Security.QueryCase.PenTestEntityAnalysisRequestXPathInlineScriptNamesByStringIntegerFloatDataType — 3 tests.
Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationAndAuthorisationMatrixAsync |
Fact | Authentication and authorisation matrix. |
CrossTenantModelsAreIndistinguishableFromUnknownAndContentIsFilteredAsync |
Fact | Cross tenant models are indistinguishable from unknown and content is filtered. |
ResponseShapeRouteAbuseVerbsAndReplayAsync |
Fact | Response shape route abuse verbs and replay. |
Query exhaustive
PenTestExhaustiveChartConfusion
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartConfusion — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartErrorHistogram
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartErrorHistogram — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartLearningCurve
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartLearningCurve — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceCalibration
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceCalibration — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceConfusion
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceConfusion — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceGains
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceGains — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceKs
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceKs — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceLift
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceLift — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceMeasures
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceMeasures — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceParameters
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceParameters — 13 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
ThresholdAndCostParameters_AreValidatedNeverServerErrorsNorReflectedAsync |
Fact | Threshold and cost parameters are validated never server errors nor reflected. |
CostsMoveTheMinimumRiskLineOnlyForTheOwnerAndNeverExposeAnotherTenantAsync |
Fact | Costs move the minimum risk line only for the owner and never expose another tenant. |
PenTestExhaustiveChartPerformancePrecisionRecall
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformancePrecisionRecall — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformancePromotionHistory
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformancePromotionHistory — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceRoc
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceRoc — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceScoreDistribution
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceScoreDistribution — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceThresholdSweep
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceThresholdSweep — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPerformanceTopology
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPerformanceTopology — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartPredictedActual
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartPredictedActual — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartRoc
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartRoc — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartSensitivity
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartSensitivity — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveChartStylesheet
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartStylesheet — 3 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
CssDirectory_HoldsOnlyTheGeneratedChartStylesheet |
Fact | Css directory holds only the generated chart stylesheet. |
Stylesheet_IsServedAnonymouslyAsInertCssWithNoTenantDataAsync |
Fact | Stylesheet is served anonymously as inert css with no tenant data. |
Stylesheet_TraversalAndVerbTamperingNeverExposeAnythingElseAsync |
Fact | Stylesheet traversal and verb tampering never expose anything else. |
PenTestExhaustiveChartVariableHistogram
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveChartVariableHistogram — 12 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
VariableOfAnotherInstanceOrTenant_IsTheEmptyStateAsync |
Fact | Variable of another instance or tenant is the empty state. |
PenTestExhaustiveSearchInstancePromotedTrialInstanceConfusion
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstancePromotedTrialInstanceConfusion — 12 tests. Category:
PenTest.
| Test | Kind | Verifies |
|---|---|---|
Counts_AreConsistentAndRatiosAreFiniteAsync |
Fact | Counts are consistent and ratios are finite. |
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstancePromotedTrialInstanceErrorHistogram
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstancePromotedTrialInstanceErrorHistogram — 12 tests.
Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
Histogram_CountsOnlyTheLiveRowsOfTheOwnersPromotedTrialAsync |
Fact | Histogram counts only the live rows of the owners promoted trial. |
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstancePromotedTrialInstanceLearningCurve
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstancePromotedTrialInstanceLearningCurve — 11 tests.
Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstancePromotedTrialInstancePredictedActual
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstancePromotedTrialInstancePredictedActual — 12 tests.
Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
Rows_AreTheLiveOnesAndErrorIsActualMinusPredictedAsync |
Fact | Rows are the live ones and error is actual minus predicted. |
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstancePromotedTrialInstanceQuery
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstancePromotedTrialInstanceQuery — 12 tests. Category:
PenTest.
| Test | Kind | Verifies |
|---|---|---|
StoredJson_IsReturnedAsDataAndNeverOtherTenantsAsync |
Fact | Stored json is returned as data and never other tenants. |
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstancePromotedTrialInstanceRoc
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstancePromotedTrialInstanceRoc — 12 tests. Category:
PenTest.
| Test | Kind | Verifies |
|---|---|---|
RatesAreFiniteFractionsAndOrderedByIdAsync |
Fact | Rates are finite fractions and ordered by id. |
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstancePromotedTrialInstanceVariablePrescription
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstancePromotedTrialInstanceVariablePrescription — 11
tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstancePromotionHistory
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstancePromotionHistory — 12 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
History_NeverCarriesTheSerialisedNetworkAndCountsTrialsAsync |
Fact | History never carries the serialised network and counts trials. |
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstanceTrialInstanceListQuery
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstanceTrialInstanceListQuery — 12 tests. Category:
PenTest.
| Test | Kind | Verifies |
|---|---|---|
Trials_AreReturnedForTheOwningInstanceOnlyAsync |
Fact | Trials are returned for the owning instance only. |
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstanceTrialInstanceVariable
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstanceTrialInstanceVariable — 12 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
StoredNames_RoundTripAsDataInJsonAsync |
Fact | Stored names round trip as data in json. |
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstanceTrialInstanceVariableVariance
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstanceTrialInstanceVariableVariance — 11 tests. Category:
PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveSearchInstanceVariable
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveSearchInstanceVariable — 12 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
VariablesAndHistograms_AreTheLiveOnesOfTheOwnerAsync |
Fact | Variables and histograms are the live ones of the owner. |
AuthorisedUser_ReadsOwnDataAsWellFormedJsonAsync |
Fact | Authorised user reads own data as well formed json. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignIdLooksExactlyLikeANonExistentIdAsync |
Fact | Cross tenant foreign id looks exactly like a non existent id. |
IdEnumeration_NeighbouringIdsNeverLeakAcrossTenantsAndStayUniformAsync |
Fact | Id enumeration neighbouring ids never leak across tenants and stay uniform. |
SoftDeleted_RowsAndInstancesAreNeverReturnedAsync |
Fact | Soft deleted rows and instances are never returned. |
EmptyResult_IsAWellFormedEmptyDocumentAsync |
Fact | Empty result is a well formed empty document. |
NumericEdgeCases_NaNInfinityZeroDenominatorAndOverflowSerialiseValidlyAsync |
Fact | Numeric edge cases na n infinity zero denominator and overflow serialise validly. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheResultAsync |
Fact | Hostile query string and headers never change the result. |
VerbTampering_OnlyGetIsServedAndNothingIsModifiedAsync |
Fact | Verb tampering only get is served and nothing is modified. |
PenTestExhaustiveStatisticsChartGrid
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveStatisticsChartGrid — 11 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveStatisticsChartMonteCarlo
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveStatisticsChartMonteCarlo — 12 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
VariableOfAnotherInstanceOrTenant_IsTheEmptyStateAsync |
Fact | Variable of another instance or tenant is the empty state. |
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveStatisticsChartMonteCarloSummary
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveStatisticsChartMonteCarloSummary — 12 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
VariableOfAnotherInstanceOrTenant_IsTheEmptyStateAsync |
Fact | Variable of another instance or tenant is the empty state. |
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestExhaustiveStatisticsChartVariableClasses
Jube.Test.Security.QueryExhaustive.PenTestExhaustiveStatisticsChartVariableClasses — 12 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
VariableOfAnotherInstanceOrTenant_IsTheEmptyStateAsync |
Fact | Variable of another instance or tenant is the empty state. |
AuthorisedUser_ReadsOwnDataAsSafeSvgAsync |
Fact | Authorised user reads own data as safe svg. |
AuthenticationAndPermissionMatrix_RefusesEveryoneButAuthorisedUsersAsync |
Fact | Authentication and permission matrix refuses everyone but authorised users. |
CrossTenant_ForeignAndUnknownIdsAnswerIndistinguishablyAsync |
Fact | Cross tenant foreign and unknown ids answer indistinguishably. |
IdEnumeration_NeighbouringIdsAreOwnDataOrTheEmptyStateNeverForeignAsync |
Fact | Id enumeration neighbouring ids are own data or the empty state never foreign. |
EmptyStates_UnknownEmptyAndSoftDeletedAreByteForByteEqualAsync |
Fact | Empty states unknown empty and soft deleted are byte for byte equal. |
NumericEdgeCases_NaNInfinityAndOverflowNeverBreakTheSvgAsync |
Fact | Numeric edge cases na n infinity and overflow never break the svg. |
ConcurrentReads_AreDeterministicAndBoundedAsync |
Fact | Concurrent reads are deterministic and bounded. |
IdBoundariesAndTypeConfusion_AreRejectedOrEmptyNeverServerErrorsAsync |
Fact | Id boundaries and type confusion are rejected or empty never server errors. |
HostileQueryStringAndHeaders_NeverChangeTheChartAsync |
Fact | Hostile query string and headers never change the chart. |
VerbTampering_OnlyGetIsServedAsync |
Fact | Verb tampering only get is served. |
HostileVariableNames_AreEscapedAndNeverBecomeMarkupAsync |
Fact | Hostile variable names are escaped and never become markup. |
PenTestReady
Jube.Test.Security.QueryExhaustive.PenTestReady — 5 tests. Category: PenTest.
| Test | Kind | Verifies |
|---|---|---|
Anonymous_GetAnswersOnlyStatusWithNoBodyOrInformationHeadersAsync |
Fact | Anonymous get answers only status with no body or information headers. |
EveryCallerGetsTheSameAnswerAsAnonymousAsync |
Fact | Every caller gets the same answer as anonymous. |
OtherVerbs_AreNotServedAsync |
Fact | Other verbs are not served. |
HostileQueryStringPathAndHeaders_CannotChangeTheAnswerOrLeakAsync |
Fact | Hostile query string path and headers cannot change the answer or leak. |
RepeatedProbing_IsCheapAndStableAsync |
Fact | Repeated probing is cheap and stable. |
Visualisation
PenTestCompletions
Jube.Test.Security.Visualisation.PenTestCompletions — 4 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationMatrix_EveryRoute_RefusesUnauthorisedCallersAsync |
Fact | Authentication matrix every route refuses unauthorised callers. |
OwnModelAndWorkflow_AreServedAndForeignOnesLookMissingAsync |
Fact | Own model and workflow are served and foreign ones look missing. |
ParameterTypeConfusionAndInjection_NeverServerErrorAsync |
Fact | Parameter type confusion and injection never server error. |
CompletionMetadata_NeverExposesInternalsAndRoutesAreJsonAsync |
Fact | Completion metadata never exposes internals and routes are json. |
PenTestCompletionsExhaustiveInstanceDataset
Jube.Test.Security.Visualisation.PenTestCompletionsExhaustiveInstanceDataset — 4 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationMatrix_RefusesUnauthorisedCallersAsync |
Fact | Authentication matrix refuses unauthorised callers. |
OwnDatasetIsServedAndForeignOrMissingLookTheSameAsync |
Fact | Own dataset is served and foreign or missing look the same. |
ParameterTypeConfusionAndInjection_NeverServerErrorAsync |
Fact | Parameter type confusion and injection never server error. |
ResponseNeverExposesInternalsAsync |
Fact | Response never exposes internals. |
PenTestIcons
Jube.Test.Security.Visualisation.PenTestIcons — 5 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationMatrix_RefusesUnauthorisedCallers_AndServesTheListingAsync |
Fact | Authentication matrix refuses unauthorised callers and serves the listing. |
Listing_CarriesOnlyPlainImageFileNamesThatExistInTheIconsDirectoryAsync |
Fact | Listing carries only plain image file names that exist in the icons directory. |
ParametersAndPaths_CannotSteerTheDirectoryOrTraverseAsync |
Fact | Parameters and paths cannot steer the directory or traverse. |
IconsDirectory_IsNotBrowsableAndOnlyServesImagesAsync |
Fact | Icons directory is not browsable and only serves images. |
VerbsOtherThanGet_AreRefusedAsync |
Fact | Verbs other than get are refused. |
PenTestTreeChildren
Jube.Test.Security.Visualisation.PenTestTreeChildren — 4 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
RouteTable_ExposesExactlyTheServiceNodes |
Fact | Route table exposes exactly the service nodes. |
Node_AuthenticationMatrix_RefusesUnauthorisedCallersAsync |
Theory | Node authentication matrix refuses unauthorised callers. |
AllNodes_TenantIsolation_ForeignParentsLookMissingAsync |
Fact | All nodes tenant isolation foreign parents look missing. |
AllNodes_ParameterAbuseAndTypeConfusion_NeverServerErrorAsync |
Fact | All nodes parameter abuse and type confusion never server error. |
PenTestVisualisationRegistry
Jube.Test.Security.Visualisation.PenTestVisualisationRegistry — 13 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationMatrix_EveryRoute_RefusesUnauthorisedCallersAsync |
Fact | Authentication matrix every route refuses unauthorised callers. |
ListsAreTenantScoped_AndNeverCarryTheOtherTenantsRowsAsync |
Fact | Lists are tenant scoped and never carry the other tenants rows. |
ForeignTenantIdsAndGuids_BehaveLikeNotFoundAsync |
Fact | Foreign tenant ids and guids behave like not found. |
RecallAndAllocation_UnallocatedRegistryNeverLeaksExistenceAsync |
Fact | Recall and allocation unallocated registry never leaks existence. |
CreateMassAssignment_ForbiddenFieldsAreNotHonouredAsync |
Fact | Create mass assignment forbidden fields are not honoured. |
UpdateMassAssignment_ForbiddenFieldsAreNotHonouredAsync |
Fact | Update mass assignment forbidden fields are not honoured. |
LockedAndDeletedRows_CannotBeUpdatedDeletedOrRevivedAsync |
Fact | Locked and deleted rows cannot be updated deleted or revived. |
Injection_NameField_RoundTripsAsDataAndNeverExecutesAsync |
Fact | Injection name field round trips as data and never executes. |
ControlCharactersNulAndSurrogates_InNameNeverServerErrorAsync |
Fact | Control characters nul and surrogates in name never server error. |
RouteAndQueryParameters_AreNeverInterpretedAsync |
Fact | Route and query parameters are never interpreted. |
BodyTypeConfusionAndBoundaries_NeverServerErrorAsync |
Fact | Body type confusion and boundaries never server error. |
DoubleSubmitAndConcurrency_KeepTheTenantConsistentAsync |
Fact | Double submit and concurrency keep the tenant consistent. |
ResourceConsumption_OversizedBodiesAndListsAreBoundedAsync |
Fact | Resource consumption oversized bodies and lists are bounded. |
PenTestVisualisationRegistryDatasourceRole
Jube.Test.Security.Visualisation.PenTestVisualisationRegistryDatasourceRole — 8 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationMatrix_EveryRoute_RefusesUnauthorisedCallersAsync |
Fact | Authentication matrix every route refuses unauthorised callers. |
GrantingAForeignTenantsRoleOrParent_IsRefusedAndCreatesNothingAsync |
Fact | Granting a foreign tenants role or parent is refused and creates nothing. |
ListAndDelete_AreScopedToTheCallersTenantAsync |
Fact | List and delete are scoped to the callers tenant. |
MassAssignment_ForbiddenFieldsAreNotHonouredAsync |
Fact | Mass assignment forbidden fields are not honoured. |
InjectionAndTypeConfusion_NeverServerErrorAndCreateNothingAsync |
Fact | Injection and type confusion never server error and create nothing. |
ReplayAndConcurrency_NeverServerErrorAsync |
Fact | Replay and concurrency never server error. |
DuplicateGrants_AreIdempotent_NeverAServerError_AndOneRevokeRemovesTheAccessAsync |
Fact | Duplicate grants are idempotent never a server error and one revoke removes the access. |
ResourceConsumption_OversizedBodiesAreRejectedAsync |
Fact | Resource consumption oversized bodies are rejected. |
PenTestVisualisationRegistryDatasourceSeries
Jube.Test.Security.Visualisation.PenTestVisualisationRegistryDatasourceSeries — 3 tests. Category: PenTest.
Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationMatrix_RefusesUnauthorisedCallers_AndAuthorisedSeesOwnSeriesAsync |
Fact | Authentication matrix refuses unauthorised callers and authorised sees own series. |
ForeignDatasourceIds_BehaveLikeNotFoundAsync |
Fact | Foreign datasource ids behave like not found. |
RouteParametersInjectionAndVerbs_NeverServerErrorOrMutateAsync |
Fact | Route parameters injection and verbs never server error or mutate. |
PenTestVisualisationRegistryParameter
Jube.Test.Security.Visualisation.PenTestVisualisationRegistryParameter — 9 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationMatrix_EveryRoute_RefusesUnauthorisedCallersAsync |
Fact | Authentication matrix every route refuses unauthorised callers. |
ForeignTenantParameters_AreInvisibleAndImmutableAsync |
Fact | Foreign tenant parameters are invisible and immutable. |
ActiveOnlyList_FiltersUnallocatedRegistriesWithoutLeakingExistenceAsync |
Fact | Active only list filters unallocated registries without leaking existence. |
MassAssignment_ForbiddenFieldsAreNotHonouredAsync |
Fact | Mass assignment forbidden fields are not honoured. |
DefaultValueAndDataType_TypeConfusionIsRefusedAndStoredVerbatimAsync |
Fact | Default value and data type type confusion is refused and stored verbatim. |
StoredDefaultValues_AreOnlyEverBoundAsTypedParametersAsync |
Fact | Stored default values are only ever bound as typed parameters. |
LockedAndDeletedParameters_CannotBeChangedOrRevivedAsync |
Fact | Locked and deleted parameters cannot be changed or revived. |
RouteBodyAndVerbAbuse_NeverServerErrorAsync |
Fact | Route body and verb abuse never server error. |
DoubleSubmitAndConcurrency_KeepTheRegistryConsistentAsync |
Fact | Double submit and concurrency keep the registry consistent. |
PenTestVisualisationRegistryParameterRole
Jube.Test.Security.Visualisation.PenTestVisualisationRegistryParameterRole — 8 tests. Category: PenTest. Collection:
Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationMatrix_EveryRoute_RefusesUnauthorisedCallersAsync |
Fact | Authentication matrix every route refuses unauthorised callers. |
GrantingAForeignTenantsRoleOrParent_IsRefusedAndCreatesNothingAsync |
Fact | Granting a foreign tenants role or parent is refused and creates nothing. |
ListAndDelete_AreScopedToTheCallersTenantAsync |
Fact | List and delete are scoped to the callers tenant. |
MassAssignment_ForbiddenFieldsAreNotHonouredAsync |
Fact | Mass assignment forbidden fields are not honoured. |
InjectionAndTypeConfusion_NeverServerErrorAndCreateNothingAsync |
Fact | Injection and type confusion never server error and create nothing. |
ReplayAndConcurrency_NeverServerErrorAsync |
Fact | Replay and concurrency never server error. |
DuplicateGrants_AreIdempotent_NeverAServerError_AndOneRevokeRemovesTheAccessAsync |
Fact | Duplicate grants are idempotent never a server error and one revoke removes the access. |
ResourceConsumption_OversizedBodiesAreRejectedAsync |
Fact | Resource consumption oversized bodies are rejected. |
PenTestVisualisationRegistryRole
Jube.Test.Security.Visualisation.PenTestVisualisationRegistryRole — 8 tests. Category: PenTest. Collection: Database.
| Test | Kind | Verifies |
|---|---|---|
AuthenticationMatrix_EveryRoute_RefusesUnauthorisedCallersAsync |
Fact | Authentication matrix every route refuses unauthorised callers. |
GrantingAForeignTenantsRoleOrParent_IsRefusedAndCreatesNothingAsync |
Fact | Granting a foreign tenants role or parent is refused and creates nothing. |
ListAndDelete_AreScopedToTheCallersTenantAsync |
Fact | List and delete are scoped to the callers tenant. |
MassAssignment_ForbiddenFieldsAreNotHonouredAsync |
Fact | Mass assignment forbidden fields are not honoured. |
InjectionAndTypeConfusion_NeverServerErrorAndCreateNothingAsync |
Fact | Injection and type confusion never server error and create nothing. |
ReplayAndConcurrency_NeverServerErrorAsync |
Fact | Replay and concurrency never server error. |
DuplicateGrants_AreIdempotent_NeverAServerError_AndOneRevokeRemovesTheAccessAsync |
Fact | Duplicate grants are idempotent never a server error and one revoke removes the access. |
ResourceConsumption_OversizedBodiesAreRejectedAsync |
Fact | Resource consumption oversized bodies are rejected. |
