Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/5-internal/pr-3017
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Unused old swagger code removed from stern and team features
119 changes: 0 additions & 119 deletions libs/wire-api/src/Wire/API/Team/Feature.hs
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,6 @@ module Wire.API.Team.Feature
MLSConfig (..),
AllFeatureConfigs (..),
typeFeatureTTL,
withStatusModel,
withStatusNoLockModel,
allFeatureModels,
typeFeatureStatus,
unImplicitLockStatus,
ImplicitLockStatus (..),
)
Expand Down Expand Up @@ -159,10 +155,6 @@ class IsFeatureConfig cfg where
type FeatureSymbol cfg :: Symbol
defFeatureStatus :: WithStatus cfg

-- | Swagger 1.2 model for stern and wai routes
configModel :: Maybe Doc.Model
configModel = Nothing

objectSchema ::
-- | Should be "pure MyFeatureConfig" if the feature doesn't have config,
-- which results in a trivial empty schema and the "config" field being
Expand Down Expand Up @@ -250,20 +242,6 @@ instance (ToSchema cfg, IsFeatureConfig cfg) => ToSchema (WithStatus cfg) where
instance (Arbitrary cfg, IsFeatureConfig cfg) => Arbitrary (WithStatus cfg) where
arbitrary = WithStatusBase <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary

withStatusModel :: forall cfg. (IsFeatureConfig cfg, KnownSymbol (FeatureSymbol cfg)) => Doc.Model
withStatusModel =
let name = featureName @cfg
mbModelCfg = configModel @cfg
in Doc.defineModel ("WithStatus." <> name) $ do
case mbModelCfg of
Nothing -> Doc.description $ "Team feature " <> name <> " that has no configuration beyond the boolean on/off switch."
Just modelCfg -> do
Doc.description $ "Status and config of " <> name
Doc.property "config" (Doc.ref modelCfg) $ Doc.description "config"

Doc.property "status" typeFeatureStatus $ Doc.description "status"
Doc.property "lockStatus" typeLockStatusValue $ Doc.description ""

----------------------------------------------------------------------
-- WithStatusPatch

Expand Down Expand Up @@ -359,19 +337,6 @@ instance (ToSchema cfg, IsFeatureConfig cfg) => ToSchema (WithStatusNoLock cfg)
inner = schema @cfg
name = fromMaybe "" (getName (schemaDoc inner)) <> ".WithStatusNoLock"

withStatusNoLockModel :: forall cfg. (IsFeatureConfig cfg, KnownSymbol (FeatureSymbol cfg)) => Doc.Model
withStatusNoLockModel =
let name = featureName @cfg
mbModelCfg = configModel @cfg
in Doc.defineModel ("WithStatusNoLock." <> name) $ do
case mbModelCfg of
Nothing -> Doc.description $ "Team feature " <> name <> " that has no configuration beyond the boolean on/off switch."
Just modelCfg -> do
Doc.description $ "Status and config of " <> name
Doc.property "config" (Doc.ref modelCfg) $ Doc.description "config"

Doc.property "status" typeFeatureStatus $ Doc.description "status"

----------------------------------------------------------------------
-- FeatureTTL

Expand Down Expand Up @@ -491,14 +456,6 @@ data LockStatus = LockStatusLocked | LockStatusUnlocked
instance FromHttpApiData LockStatus where
parseUrlPiece = maybeToEither "Invalid lock status" . fromByteString . cs

typeLockStatusValue :: Doc.DataType
typeLockStatusValue =
Doc.string $
Doc.enum
[ "locked",
"unlocked"
]

instance ToSchema LockStatus where
schema =
enum @Text "LockStatus" $
Expand Down Expand Up @@ -565,57 +522,6 @@ computeFeatureConfigForTeamUser mStatusDb mLockStatusDb defStatus =
where
lockStatus = fromMaybe (wsLockStatus defStatus) mLockStatusDb

allFeatureModels :: [Doc.Model]
allFeatureModels =
[ withStatusNoLockModel @LegalholdConfig,
withStatusNoLockModel @SSOConfig,
withStatusNoLockModel @SearchVisibilityAvailableConfig,
withStatusNoLockModel @ValidateSAMLEmailsConfig,
withStatusNoLockModel @DigitalSignaturesConfig,
withStatusNoLockModel @AppLockConfig,
withStatusNoLockModel @FileSharingConfig,
withStatusNoLockModel @ClassifiedDomainsConfig,
withStatusNoLockModel @ConferenceCallingConfig,
withStatusNoLockModel @SelfDeletingMessagesConfig,
withStatusNoLockModel @GuestLinksConfig,
withStatusNoLockModel @SndFactorPasswordChallengeConfig,
withStatusNoLockModel @SearchVisibilityInboundConfig,
withStatusNoLockModel @MLSConfig,
withStatusNoLockModel @ExposeInvitationURLsToTeamAdminConfig,
withStatusModel @LegalholdConfig,
withStatusModel @SSOConfig,
withStatusModel @SearchVisibilityAvailableConfig,
withStatusModel @ValidateSAMLEmailsConfig,
withStatusModel @DigitalSignaturesConfig,
withStatusModel @AppLockConfig,
withStatusModel @FileSharingConfig,
withStatusModel @ClassifiedDomainsConfig,
withStatusModel @ConferenceCallingConfig,
withStatusModel @SelfDeletingMessagesConfig,
withStatusModel @GuestLinksConfig,
withStatusModel @SndFactorPasswordChallengeConfig,
withStatusModel @SearchVisibilityInboundConfig,
withStatusModel @MLSConfig,
withStatusModel @ExposeInvitationURLsToTeamAdminConfig
]
<> catMaybes
[ configModel @LegalholdConfig,
configModel @SSOConfig,
configModel @SearchVisibilityAvailableConfig,
configModel @ValidateSAMLEmailsConfig,
configModel @DigitalSignaturesConfig,
configModel @AppLockConfig,
configModel @FileSharingConfig,
configModel @ClassifiedDomainsConfig,
configModel @ConferenceCallingConfig,
configModel @SelfDeletingMessagesConfig,
configModel @GuestLinksConfig,
configModel @SndFactorPasswordChallengeConfig,
configModel @SearchVisibilityInboundConfig,
configModel @MLSConfig,
configModel @ExposeInvitationURLsToTeamAdminConfig
]

--------------------------------------------------------------------------------
-- GuestLinks feature

Expand Down Expand Up @@ -816,9 +722,6 @@ instance IsFeatureConfig ClassifiedDomainsConfig where
LockStatusUnlocked
(ClassifiedDomainsConfig [])
FeatureTTLUnlimited
configModel = Just $
Doc.defineModel "ClassifiedDomainsConfig" $ do
Doc.property "domains" (Doc.array Doc.string') $ Doc.description "domains"
objectSchema = field "config" schema

----------------------------------------------------------------------
Expand Down Expand Up @@ -848,10 +751,6 @@ instance IsFeatureConfig AppLockConfig where
LockStatusUnlocked
(AppLockConfig (EnforceAppLock False) 60)
FeatureTTLUnlimited
configModel = Just $
Doc.defineModel "AppLockConfig" $ do
Doc.property "enforceAppLock" Doc.bool' $ Doc.description "enforceAppLock"
Doc.property "inactivityTimeoutSecs" Doc.int32' $ Doc.description ""
objectSchema = field "config" schema

newtype EnforceAppLock = EnforceAppLock Bool
Expand Down Expand Up @@ -904,9 +803,6 @@ instance IsFeatureConfig SelfDeletingMessagesConfig where
LockStatusUnlocked
(SelfDeletingMessagesConfig 0)
FeatureTTLUnlimited
configModel = Just $
Doc.defineModel "SelfDeletingMessagesConfig" $ do
Doc.property "enforcedTimeoutSeconds" Doc.int32' $ Doc.description "optional; default: `0` (no enforcement)"
objectSchema = field "config" schema

----------------------------------------------------------------------
Expand Down Expand Up @@ -937,13 +833,6 @@ instance IsFeatureConfig MLSConfig where
in withStatus FeatureStatusDisabled LockStatusUnlocked config FeatureTTLUnlimited
objectSchema = field "config" schema

configModel = Just $
Doc.defineModel "MLSConfig" $ do
Doc.property "protocolToggleUsers" (Doc.array Doc.string') $ Doc.description "allowlist of users that may change protocols"
Doc.property "defaultProtocol" Doc.string' $ Doc.description "default protocol, either \"proteus\" or \"mls\""
Doc.property "allowedCipherSuites" (Doc.array Doc.int32') $ Doc.description "cipher suite numbers, See https://messaginglayersecurity.rocks/mls-protocol/draft-ietf-mls-protocol.html#table-5"
Doc.property "defaultCipherSuite" Doc.int32' $ Doc.description "cipher suite number. See https://messaginglayersecurity.rocks/mls-protocol/draft-ietf-mls-protocol.html#table-5"

----------------------------------------------------------------------
-- ExposeInvitationURLsToTeamAdminConfig

Expand Down Expand Up @@ -985,14 +874,6 @@ instance FromHttpApiData FeatureStatus where
instance ToHttpApiData FeatureStatus where
toUrlPiece = cs . toByteString'

typeFeatureStatus :: Doc.DataType
typeFeatureStatus =
Doc.string $
Doc.enum
[ "enabled",
"disabled"
]

instance ToSchema FeatureStatus where
schema =
enum @Text "FeatureStatus" $
Expand Down
96 changes: 0 additions & 96 deletions tools/stern/src/Stern/Swagger.hs

This file was deleted.

1 change: 0 additions & 1 deletion tools/stern/stern.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ library
Stern.App
Stern.Intra
Stern.Options
Stern.Swagger
Stern.Types

other-modules: Paths_stern
Expand Down