Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Federation: Provide a New Endpoint for Obtaining Classified Domains #1626

Merged
merged 76 commits into from
Jul 14, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
354a80d
Start of implementing an endpoint for classified domains
mdimjasevic Jun 21, 2021
102fca8
Import fetching classified domains from the database
mdimjasevic Jun 23, 2021
44a460a
Implement storing classified domains into the database
mdimjasevic Jun 24, 2021
b106a00
Finish implementing a ToSchema instance for a configuration
mdimjasevic Jun 24, 2021
8f884d6
Implement a feature flag for classified domains
mdimjasevic Jun 24, 2021
a4e04d0
Implement permissions for classified domains
mdimjasevic Jun 24, 2021
eb6e239
Update charts and other configuration files
mdimjasevic Jun 24, 2021
8a9945d
Implement getClassifiedDomainsInternal
mdimjasevic Jun 24, 2021
f2950b9
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jun 25, 2021
02986e4
Remove a redudant constraint from a test utility signature
mdimjasevic Jun 25, 2021
f9fd1b2
Ormolu fixes
mdimjasevic Jun 25, 2021
fcce42e
Update Swagger
mdimjasevic Jun 25, 2021
4496082
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jun 28, 2021
3991fd0
WIP
mdimjasevic Jun 28, 2021
d39f8c0
WIP 2
mdimjasevic Jun 28, 2021
edc4cf2
wip 3
smatting Jun 28, 2021
23544e9
implement internal endpoint
smatting Jun 28, 2021
f3c735a
update galley.demo.yaml
smatting Jun 28, 2021
75bebb5
fix galley configs
smatting Jun 28, 2021
5fcda7d
remove cql for feature
smatting Jun 28, 2021
1f1a073
cleanup
smatting Jun 28, 2021
40feb9f
remove unbound handlers
smatting Jun 28, 2021
9b7639d
remove todo
smatting Jun 28, 2021
03eaad5
Introduce an Arbitrary instance and fix a corresponding test
mdimjasevic Jun 29, 2021
ec8b634
Remove an implemented TODO
mdimjasevic Jun 29, 2021
fca7c70
Remove an unfinished test
mdimjasevic Jun 29, 2021
1e3e4db
Add a roundtrip test
mdimjasevic Jun 29, 2021
422d7e5
Remove a doc that should probably come in a follow-up PR
mdimjasevic Jun 29, 2021
40c5e9d
Fix a typo in the documentation
mdimjasevic Jun 29, 2021
f59ac0e
Uncomment a call in making a public route
mdimjasevic Jun 29, 2021
06949ee
Fix a configuration file
mdimjasevic Jun 29, 2021
adcacde
Fix a compilation bug in Public.mkFeatureGetAndPutRoute
mdimjasevic Jun 29, 2021
996560d
Implement a test utility for team features with configuration
mdimjasevic Jun 29, 2021
a9b9510
WIP: implementing a test for classified domains
mdimjasevic Jun 29, 2021
0e81835
Improve configuration files based on feedback to the PR
mdimjasevic Jun 30, 2021
723e840
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jun 30, 2021
ea6e09f
Expose an internal endpoint for getting classified domains
mdimjasevic Jun 30, 2021
f41376c
Implement two tests for getting classified domains
mdimjasevic Jun 30, 2021
6c07436
Match CI and test integration configurations
mdimjasevic Jun 30, 2021
cf4c704
Implement tests for classified domains
mdimjasevic Jun 30, 2021
de1e853
Ormolu fixing
mdimjasevic Jun 30, 2021
f958a26
Fix the implementation logic of the endpoint handler
mdimjasevic Jun 30, 2021
39c9667
Store classified domains at the team level in the DB
mdimjasevic Jun 30, 2021
0ad0f90
Servantify the /i/teams/:tid/feature/sso endpoints
mdimjasevic Jun 30, 2021
55b5ac6
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jul 1, 2021
9aea679
Servantify all internal team feature endpoints
mdimjasevic Jul 1, 2021
c715f28
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jul 1, 2021
d71ba85
Remove type families for specifying internal endpoints
mdimjasevic Jul 1, 2021
8762f4d
Servantify the public endpoints of team features
mdimjasevic Jul 1, 2021
a4c241b
Resolve a merge conflict
mdimjasevic Jul 6, 2021
628f7d1
Squashed commit of the following:
mdimjasevic Jul 6, 2021
1220670
Remove outdated TODOs
mdimjasevic Jul 6, 2021
3985721
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jul 7, 2021
ba351ac
Remove team-level capabilities for classified domains
mdimjasevic Jul 7, 2021
eadeab0
Fixes Galley Cabal file
mdimjasevic Jul 7, 2021
e8458b2
Reverts the change to the Cassandra scheme
mdimjasevic Jul 7, 2021
9fe3bd8
Remove outdated commented-out code
mdimjasevic Jul 7, 2021
7faf002
Ormolu fixes
mdimjasevic Jul 7, 2021
9329912
Update the changelog
mdimjasevic Jul 7, 2021
9196815
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jul 8, 2021
2828be3
Update a Galley configuration for Docker
mdimjasevic Jul 8, 2021
34405fa
Revert "Update a Galley configuration for Docker"
mdimjasevic Jul 9, 2021
ae73e43
An attempt to fix a Helm chart template
mdimjasevic Jul 9, 2021
f90fa32
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jul 9, 2021
7a6e25f
An attempt to fix a Helm chart template, take 2
mdimjasevic Jul 9, 2021
5d87add
fix yaml indentation for helm templates
mdimjasevic Jul 12, 2021
bbe2a74
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jul 12, 2021
42b6a1c
Fix the default value in charts/galley/values.yaml
mdimjasevic Jul 12, 2021
d792921
Use binding instead of non-binding teams in tests
mdimjasevic Jul 12, 2021
0639fbf
document config options
jschaul Jul 12, 2021
4c3c4fa
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jul 13, 2021
8ef16e6
Remove unused type constraints in a test utility
mdimjasevic Jul 13, 2021
5ab4a80
Add an integration test for the all features endpoint
mdimjasevic Jul 13, 2021
a1ae0e8
HLS improvements
mdimjasevic Jul 13, 2021
82aa552
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jul 14, 2021
640c158
Merge branch 'develop' of github.com:wireapp/wire-server into mdimjas…
mdimjasevic Jul 14, 2021
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
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ This release requires a manual change in your galley configuration: `settings.co

## API Changes

* A new team feature for classified domains is available (#1626):
- a public endpoint is at `GET /teams/:tid/features/classifiedDomains`
- an internal endpoint is at `GET /i/teams/:tid/features/classifiedDomains`
* Several public team feature endpoints are removed (their internal and
Stern-based counterparts remain available):
- `PUT /teams/:tid/features/sso`
Expand Down
2 changes: 2 additions & 0 deletions charts/galley/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,7 @@ data:
sso: {{ .settings.featureFlags.sso }}
legalhold: {{ .settings.featureFlags.legalhold }}
teamSearchVisibility: {{ .settings.featureFlags.teamSearchVisibility }}
classifiedDomains:
{{- toYaml .settings.featureFlags.classifiedDomains | nindent 10 }}
{{- end }}
{{- end }}
4 changes: 4 additions & 0 deletions charts/galley/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ config:
sso: disabled-by-default
legalhold: disabled-by-default
teamSearchVisibility: disabled-by-default
classifiedDomains:
status: disabled
config:
domains: []
aws:
region: "eu-west-1"
proxy: {}
4 changes: 4 additions & 0 deletions deploy/services-demo/conf/galley.demo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ settings:
config:
enforceAppLock: false
inactivityTimeoutSecs: 60
classifiedDomains:
status: enabled
config:
domains: ["example.com"]

federationDomain: example.com

Expand Down
21 changes: 20 additions & 1 deletion docs/reference/config-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ production.
## Feature flags

Feature flags can be used to turn features on or off, or determine the
behavior of the features. Example:
behavior of the features. Example:

```
# [galley.yaml]
Expand Down Expand Up @@ -101,6 +101,25 @@ pull-down-menu "body":

[Allowd values](https://github.com/wireapp/wire-server/blob/0126651a25aabc0c5589edc2b1988bb06550a03a/services/brig/src/Brig/Options.hs#L304-L306) and their [description](https://github.com/wireapp/wire-server/blob/0126651a25aabc0c5589edc2b1988bb06550a03a/services/brig/src/Brig/Options.hs#L290-L299).

### Classified domains

To enable classified domains, the following needs to be in galley.yaml or wire-server/values.yaml under `settings` / `featureFlags`:

```yaml
classifiedDomains:
status: enabled
config:
domains: ["example.com", "example2.com"]
```

To disable, either omit the entry entirely (it is disabled by default), or provide the following:

```yaml
classifiedDomains:
status: disabled
config:
domains: []
```

### Federation Domain

Expand Down
4 changes: 4 additions & 0 deletions hack/helm_vars/wire-server/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,10 @@ galley:
sso: disabled-by-default # this needs to be the default; tests can enable it when needed.
legalhold: whitelist-teams-and-implicit-consent
teamSearchVisibility: disabled-by-default
classifiedDomains:
status: enabled
config:
mdimjasevic marked this conversation as resolved.
Show resolved Hide resolved
domains: ["example.com"]
journal:
endpoint: http://fake-aws-sqs:4568
queue: integration-team-events.fifo
Expand Down
17 changes: 13 additions & 4 deletions libs/galley-types/src/Galley/Types/Teams.hs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ module Galley.Types.Teams
flagLegalHold,
flagTeamSearchVisibility,
flagAppLockDefaults,
flagClassifiedDomains,
Defaults (..),
FeatureSSO (..),
FeatureLegalHold (..),
Expand Down Expand Up @@ -194,7 +195,8 @@ data FeatureFlags = FeatureFlags
{ _flagSSO :: !FeatureSSO,
_flagLegalHold :: !FeatureLegalHold,
_flagTeamSearchVisibility :: !FeatureTeamSearchVisibility,
_flagAppLockDefaults :: !(Defaults (TeamFeatureStatus 'TeamFeatureAppLock))
_flagAppLockDefaults :: !(Defaults (TeamFeatureStatus 'TeamFeatureAppLock)),
_flagClassifiedDomains :: !(TeamFeatureStatus 'TeamFeatureClassifiedDomains)
}
deriving (Eq, Show, Generic)

Expand Down Expand Up @@ -237,14 +239,16 @@ instance FromJSON FeatureFlags where
<*> obj .: "legalhold"
<*> obj .: "teamSearchVisibility"
<*> (fromMaybe (Defaults defaultAppLockStatus) <$> (obj .:? "appLock"))
<*> (fromMaybe defaultClassifiedDomains <$> (obj .:? "classifiedDomains"))

instance ToJSON FeatureFlags where
toJSON (FeatureFlags sso legalhold searchVisibility appLock) =
toJSON (FeatureFlags sso legalhold searchVisibility appLock classifiedDomains) =
object $
[ "sso" .= sso,
"legalhold" .= legalhold,
"teamSearchVisibility" .= searchVisibility,
"appLock" .= appLock
"appLock" .= appLock,
"classifiedDomains" .= classifiedDomains
]

instance FromJSON FeatureSSO where
Expand Down Expand Up @@ -285,6 +289,9 @@ makeLenses ''FeatureFlags
-- client apps treat permission bit matrices as opaque role identifiers, so if we add new
-- permission flags, things will break there.
--
-- "Hidden" in "HiddenPerm", therefore, refers to a permission hidden from
-- clients, thereby making it internal to the backend.
--
-- The solution: add new permission bits to 'HiddenPerm', 'HiddenPermissions', and make
-- 'hasPermission', 'mayGrantPermission' polymorphic. Now you can check both for the hidden
-- permission bits and the old ones that we share with the client apps.
Expand Down Expand Up @@ -329,8 +336,9 @@ roleHiddenPermissions role = HiddenPermissions p p
[ ChangeLegalHoldTeamSettings,
ChangeLegalHoldUserSettings,
ChangeTeamSearchVisibility,
ChangeTeamFeature TeamFeatureAppLock {- the features not listed here can only be changed in stern -},
ChangeTeamFeature TeamFeatureAppLock,
ChangeTeamFeature TeamFeatureFileSharing,
ChangeTeamFeature TeamFeatureClassifiedDomains {- the features not listed here can only be changed in stern -},
ReadIdp,
CreateUpdateDeleteIdp,
CreateReadDeleteScimToken,
Expand All @@ -348,6 +356,7 @@ roleHiddenPermissions role = HiddenPermissions p p
ViewTeamFeature TeamFeatureDigitalSignatures,
ViewTeamFeature TeamFeatureAppLock,
ViewTeamFeature TeamFeatureFileSharing,
ViewTeamFeature TeamFeatureClassifiedDomains,
ViewLegalHoldUserSettings,
ViewTeamSearchVisibility
]
Expand Down
1 change: 1 addition & 0 deletions libs/galley-types/test/unit/Test/Galley/Types.hs
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,4 @@ instance Arbitrary FeatureFlags where
<*> QC.elements [minBound ..]
<*> QC.elements [minBound ..]
<*> arbitrary
<*> arbitrary
5 changes: 4 additions & 1 deletion libs/wire-api/src/Wire/API/Routes/Public/Galley.hs
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,10 @@ data Api routes = Api
:- FeatureStatusGet 'TeamFeatureFileSharing,
teamFeatureStatusFileSharingPut ::
routes
:- FeatureStatusPut 'TeamFeatureFileSharing
:- FeatureStatusPut 'TeamFeatureFileSharing,
teamFeatureStatusClassifiedDomainsGet ::
routes
:- FeatureStatusGet 'TeamFeatureClassifiedDomains
}
deriving (Generic)

Expand Down
2 changes: 2 additions & 0 deletions libs/wire-api/src/Wire/API/Swagger.hs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,9 @@ models =
Team.Feature.modelForTeamFeature Team.Feature.TeamFeatureValidateSAMLEmails,
Team.Feature.modelForTeamFeature Team.Feature.TeamFeatureDigitalSignatures,
Team.Feature.modelForTeamFeature Team.Feature.TeamFeatureAppLock,
Team.Feature.modelForTeamFeature Team.Feature.TeamFeatureClassifiedDomains,
Team.Feature.modelTeamFeatureAppLockConfig,
Team.Feature.modelTeamFeatureClassifiedDomainsConfig,
Team.Invitation.modelTeamInvitation,
Team.Invitation.modelTeamInvitationList,
Team.Invitation.modelTeamInvitationRequest,
Expand Down
38 changes: 38 additions & 0 deletions libs/wire-api/src/Wire/API/Team/Feature.hs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ module Wire.API.Team.Feature
( TeamFeatureName (..),
TeamFeatureStatus,
TeamFeatureAppLockConfig (..),
TeamFeatureClassifiedDomainsConfig (..),
TeamFeatureStatusValue (..),
FeatureHasNoConfig,
EnforceAppLock (..),
Expand All @@ -30,19 +31,22 @@ module Wire.API.Team.Feature
TeamFeatureStatusWithConfig (..),
HasDeprecatedFeatureName (..),
defaultAppLockStatus,
defaultClassifiedDomains,

-- * Swagger
typeTeamFeatureName,
typeTeamFeatureStatusValue,
modelTeamFeatureStatusNoConfig,
modelTeamFeatureStatusWithConfig,
modelTeamFeatureAppLockConfig,
modelTeamFeatureClassifiedDomainsConfig,
modelForTeamFeature,
)
where

import qualified Data.Attoparsec.ByteString as Parser
import Data.ByteString.Conversion (FromByteString (..), ToByteString (..), toByteString')
import Data.Domain (Domain)
import Data.Kind (Constraint)
import Data.Schema
import Data.String.Conversions (cs)
Expand Down Expand Up @@ -94,6 +98,7 @@ data TeamFeatureName
| TeamFeatureDigitalSignatures
| TeamFeatureAppLock
| TeamFeatureFileSharing
| TeamFeatureClassifiedDomains
deriving stock (Eq, Show, Ord, Generic, Enum, Bounded, Typeable)
deriving (Arbitrary) via (GenericUniform TeamFeatureName)

Expand Down Expand Up @@ -129,6 +134,10 @@ instance KnownTeamFeatureName 'TeamFeatureFileSharing where
type KnownTeamFeatureNameSymbol 'TeamFeatureFileSharing = "fileSharing"
knownTeamFeatureName = TeamFeatureFileSharing

instance KnownTeamFeatureName 'TeamFeatureClassifiedDomains where
type KnownTeamFeatureNameSymbol 'TeamFeatureClassifiedDomains = "classifiedDomains"
knownTeamFeatureName = TeamFeatureClassifiedDomains

instance FromByteString TeamFeatureName where
parser =
Parser.takeByteString >>= \b ->
Expand All @@ -144,6 +153,7 @@ instance FromByteString TeamFeatureName where
Right "digital-signatures" -> pure TeamFeatureDigitalSignatures
Right "appLock" -> pure TeamFeatureAppLock
Right "fileSharing" -> pure TeamFeatureFileSharing
Right "classifiedDomains" -> pure TeamFeatureClassifiedDomains
Right t -> fail $ "Invalid TeamFeatureName: " <> T.unpack t

instance ToByteString TeamFeatureName where
Expand All @@ -154,6 +164,7 @@ instance ToByteString TeamFeatureName where
builder TeamFeatureDigitalSignatures = "digitalSignatures"
builder TeamFeatureAppLock = "appLock"
builder TeamFeatureFileSharing = "fileSharing"
builder TeamFeatureClassifiedDomains = "classifiedDomains"

class HasDeprecatedFeatureName (a :: TeamFeatureName) where
type DeprecatedFeatureName a :: Symbol
Expand Down Expand Up @@ -220,6 +231,7 @@ type family TeamFeatureStatus (a :: TeamFeatureName) :: * where
TeamFeatureStatus 'TeamFeatureDigitalSignatures = TeamFeatureStatusNoConfig
TeamFeatureStatus 'TeamFeatureAppLock = TeamFeatureStatusWithConfig TeamFeatureAppLockConfig
TeamFeatureStatus 'TeamFeatureFileSharing = TeamFeatureStatusNoConfig
TeamFeatureStatus 'TeamFeatureClassifiedDomains = TeamFeatureStatusWithConfig TeamFeatureClassifiedDomainsConfig

type FeatureHasNoConfig (a :: TeamFeatureName) = (TeamFeatureStatus a ~ TeamFeatureStatusNoConfig) :: Constraint

Expand All @@ -232,6 +244,7 @@ modelForTeamFeature TeamFeatureValidateSAMLEmails = modelTeamFeatureStatusNoConf
modelForTeamFeature TeamFeatureDigitalSignatures = modelTeamFeatureStatusNoConfig
modelForTeamFeature name@TeamFeatureAppLock = modelTeamFeatureStatusWithConfig name modelTeamFeatureAppLockConfig
modelForTeamFeature TeamFeatureFileSharing = modelTeamFeatureStatusNoConfig
modelForTeamFeature name@TeamFeatureClassifiedDomains = modelTeamFeatureStatusWithConfig name modelTeamFeatureClassifiedDomainsConfig

----------------------------------------------------------------------
-- TeamFeatureStatusNoConfig
Expand Down Expand Up @@ -283,6 +296,31 @@ instance ToSchema cfg => ToSchema (TeamFeatureStatusWithConfig cfg) where
<$> tfwcStatus .= field "status" schema
<*> tfwcConfig .= field "config" schema

----------------------------------------------------------------------
-- TeamFeatureClassifiedDomainsConfig

newtype TeamFeatureClassifiedDomainsConfig = TeamFeatureClassifiedDomainsConfig
{ classifiedDomainsDomains :: [Domain]
}
deriving stock (Show, Eq, Generic)
deriving (ToJSON, FromJSON, S.ToSchema) via (Schema TeamFeatureClassifiedDomainsConfig)

deriving via (GenericUniform TeamFeatureClassifiedDomainsConfig) instance Arbitrary TeamFeatureClassifiedDomainsConfig

instance ToSchema TeamFeatureClassifiedDomainsConfig where
schema =
object "TeamFeatureClassifiedDomainsConfig" $
TeamFeatureClassifiedDomainsConfig
<$> classifiedDomainsDomains .= field "domains" (array schema)

modelTeamFeatureClassifiedDomainsConfig :: Doc.Model
modelTeamFeatureClassifiedDomainsConfig =
Doc.defineModel "TeamFeatureClassifiedDomainsConfig" $ do
Doc.property "domains" (Doc.array Doc.string') $ Doc.description "domains"

defaultClassifiedDomains :: TeamFeatureStatusWithConfig TeamFeatureClassifiedDomainsConfig
defaultClassifiedDomains = TeamFeatureStatusWithConfig TeamFeatureDisabled (TeamFeatureClassifiedDomainsConfig [])

----------------------------------------------------------------------
-- TeamFeatureAppLockConfig

Expand Down
1 change: 1 addition & 0 deletions libs/wire-api/test/unit/Test/Wire/API/Roundtrip/Aeson.hs
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ tests =
testRoundTrip @(Team.Feature.TeamFeatureStatus 'Team.Feature.TeamFeatureDigitalSignatures),
testRoundTrip @(Team.Feature.TeamFeatureStatus 'Team.Feature.TeamFeatureAppLock),
testRoundTrip @(Team.Feature.TeamFeatureStatus 'Team.Feature.TeamFeatureFileSharing),
testRoundTrip @(Team.Feature.TeamFeatureStatus 'Team.Feature.TeamFeatureClassifiedDomains),
testRoundTrip @Team.Feature.TeamFeatureStatusValue,
testRoundTrip @Team.Invitation.InvitationRequest,
testRoundTrip @Team.Invitation.Invitation,
Expand Down
3 changes: 2 additions & 1 deletion services/galley/galley.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ cabal-version: 1.12
--
-- see: https://github.com/sol/hpack
--
-- hash: 0f109e5428272ef5ea11b8d726a52fbf24adbd53f628a7d2fe27b4996e18bb22
-- hash: bb7dc649f5fc67c5e449f5b5984e8d7ae01caa5833ba0fa6a5db4f45cd5b1b42

name: galley
version: 0.83.0
Expand Down Expand Up @@ -251,6 +251,7 @@ executable galley-integration
, raw-strings-qq >=1.0
, retry
, safe >=0.3
, schema-profunctor
, servant
, servant-client
, servant-client-core
Expand Down
4 changes: 4 additions & 0 deletions services/galley/galley.integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ settings:
config:
enforceAppLock: false
inactivityTimeoutSecs: 60
classifiedDomains:
status: enabled
config:
domains: ["example.com"]

logLevel: Info
logNetStrings: false
Expand Down
1 change: 1 addition & 0 deletions services/galley/package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ executables:
- quickcheck-instances
- random
- retry
- schema-profunctor
- servant
- servant-server
- servant-swagger
Expand Down
8 changes: 6 additions & 2 deletions services/galley/src/Galley/API/Internal.hs
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,10 @@ data InternalApi routes = InternalApi
:- IFeatureStatusGet 'Public.TeamFeatureFileSharing,
iTeamFeatureStatusFileSharingPut ::
routes
:- IFeatureStatusPut 'Public.TeamFeatureFileSharing
:- IFeatureStatusPut 'Public.TeamFeatureFileSharing,
iTeamFeatureStatusClassifiedDomainsGet ::
routes
:- IFeatureStatusGet 'Public.TeamFeatureClassifiedDomains
}
deriving (Generic)

Expand Down Expand Up @@ -218,7 +221,8 @@ servantSitemap =
iTeamFeatureStatusAppLockGet = iGetTeamFeature @'Public.TeamFeatureAppLock Features.getAppLockInternal,
iTeamFeatureStatusAppLockPut = iPutTeamFeature @'Public.TeamFeatureAppLock Features.setAppLockInternal,
iTeamFeatureStatusFileSharingGet = iGetTeamFeature @'Public.TeamFeatureFileSharing Features.getFileSharingInternal,
iTeamFeatureStatusFileSharingPut = iPutTeamFeature @'Public.TeamFeatureFileSharing Features.setFileSharingInternal
iTeamFeatureStatusFileSharingPut = iPutTeamFeature @'Public.TeamFeatureFileSharing Features.setFileSharingInternal,
iTeamFeatureStatusClassifiedDomainsGet = iGetTeamFeature @'Public.TeamFeatureClassifiedDomains Features.getClassifiedDomainsInternal
}

iGetTeamFeature ::
Expand Down
8 changes: 6 additions & 2 deletions services/galley/src/Galley/API/Public.hs
Original file line number Diff line number Diff line change
Expand Up @@ -129,11 +129,15 @@ servantSitemap =
getFeatureStatus @'Public.TeamFeatureAppLock Features.getAppLockInternal
. DoAuth,
GalleyAPI.teamFeatureStatusAppLockPut =
setFeatureStatus @'Public.TeamFeatureAppLock Features.setAppLockInternal . DoAuth,
setFeatureStatus @'Public.TeamFeatureAppLock Features.setAppLockInternal
. DoAuth,
GalleyAPI.teamFeatureStatusFileSharingGet =
getFeatureStatus @'Public.TeamFeatureFileSharing Features.getFileSharingInternal . DoAuth,
GalleyAPI.teamFeatureStatusFileSharingPut =
setFeatureStatus @'Public.TeamFeatureFileSharing Features.setFileSharingInternal . DoAuth
setFeatureStatus @'Public.TeamFeatureFileSharing Features.setFileSharingInternal . DoAuth,
GalleyAPI.teamFeatureStatusClassifiedDomainsGet =
getFeatureStatus @'Public.TeamFeatureClassifiedDomains Features.getClassifiedDomainsInternal
. DoAuth
}

sitemap :: Routes ApiBuilder Galley ()
Expand Down
Loading