1
0
mirror of https://github.com/bitwarden/server synced 2025-12-26 05:03:18 +00:00
Files
server/src/Api/appsettings.json
Conner Turnbull cf7a59c077 [Innovation Sprint] Phishing Detection (#5516)
* Initial stubbing out of the phishing service

* Add the phishing domain controller

* Add changes for the phishing domain get

* Add distributed cache to the phishing domain

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>

* Rename the variable name

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>

* Removed IPhishingDomainService

* Feature/phishing detection cronjob (#5512)

* Added caching to EF implementation. Added error handling and logging

* Refactored update method to use sqlbulkcopy instead of performing a round trip for each new insert

* Initial implementation for quartz job to get list of phishing domains

* Updated phishing domain settings to be its own interface

* Add phishing domain detection with checksum-based updates

* Updated auth for phishing domain endpoints to either require api, or licensing claims to support both web and browser clients, and selfhost api clients

* [Innovation Sprint] Updated Phishing domains to rely on blob storage (#5517)

* Updated phishing detection data layer to rely on azure blob storage instead of sql server

* dotnet format

* Took rider refactors

* Ensuring phishing.testcategory.com exists to test against

* Added redis to dev's docker-compose

* Removed redis from cloud profile

* Remove the Authorize attribute

* error whitespace fix whitespace formatting

* error WHITESPACE: Fix whitespace formatting

* Wrapped phishing detection feature behind feature flag (#5532)

* Increased timeout for fetching source list a bunch

* Removed PhishingDomains policy

---------

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>
Co-authored-by: Cy Okeke <cokeke@bitwarden.com>
2025-04-30 11:03:59 -04:00

234 lines
4.9 KiB
JSON

{
"globalSettings": {
"selfHosted": false,
"siteName": "Bitwarden",
"projectName": "Api",
"stripe": {
"apiKey": "SECRET"
},
"sqlServer": {
"connectionString": "SECRET"
},
"mail": {
"sendGridApiKey": "SECRET",
"amazonConfigSetName": "Email",
"replyToEmail": "no-reply@bitwarden.com"
},
"identityServer": {
"certificateThumbprint": "SECRET"
},
"dataProtection": {
"certificateThumbprint": "SECRET"
},
"storage": {
"connectionString": "SECRET"
},
"events": {
"connectionString": "SECRET"
},
"attachment": {
"connectionString": "SECRET"
},
"send": {
"connectionString": "SECRET"
},
"sentry": {
"dsn": "SECRET"
},
"notificationHub": {
"connectionString": "SECRET",
"hubName": "SECRET"
},
"serviceBus": {
"connectionString": "SECRET",
"applicationCacheTopicName": "SECRET"
},
"yubico": {
"clientid": "SECRET",
"key": "SECRET"
},
"duo": {
"aKey": "SECRET"
},
"braintree": {
"production": false,
"merchantId": "SECRET",
"publicKey": "SECRET",
"privateKey": "SECRET"
},
"importCiphersLimitation": {
"ciphersLimit": 40000,
"collectionRelationshipsLimit": 80000,
"collectionsLimit": 2000
},
"bitPay": {
"production": false,
"token": "SECRET",
"notificationUrl": "https://bitwarden.com/SECRET"
},
"amazon": {
"accessKeyId": "SECRET",
"accessKeySecret": "SECRET",
"region": "SECRET"
},
"phishingDomain": {
"updateUrl": "SECRET"
},
"distributedIpRateLimiting": {
"enabled": true,
"maxRedisTimeoutsThreshold": 10,
"slidingWindowSeconds": 120
}
},
"IpRateLimitOptions": {
"EnableEndpointRateLimiting": true,
"StackBlockedRequests": false,
"RealIpHeader": "X-Connecting-IP",
"ClientIdHeader": "X-ClientId",
"HttpStatusCode": 429,
"IpWhitelist": [],
"EndpointWhitelist": [],
"ClientWhitelist": [],
"GeneralRules": [
{
"Endpoint": "post:*",
"Period": "1m",
"Limit": 60
},
{
"Endpoint": "post:*",
"Period": "1s",
"Limit": 5
},
{
"Endpoint": "put:*",
"Period": "1m",
"Limit": 60
},
{
"Endpoint": "put:*",
"Period": "1s",
"Limit": 5
},
{
"Endpoint": "delete:*",
"Period": "1m",
"Limit": 60
},
{
"Endpoint": "delete:*",
"Period": "1s",
"Limit": 5
},
{
"Endpoint": "get:*",
"Period": "1m",
"Limit": 200
},
{
"Endpoint": "post:/accounts/register",
"Period": "1m",
"Limit": 2
},
{
"Endpoint": "post:/accounts/password-hint",
"Period": "60m",
"Limit": 5
},
{
"Endpoint": "post:/accounts/email-token",
"Period": "1m",
"Limit": 2
},
{
"Endpoint": "post:/accounts/email",
"Period": "60m",
"Limit": 5
},
{
"Endpoint": "post:/accounts/verify-email-token",
"Period": "1m",
"Limit": 2
},
{
"Endpoint": "post:/accounts/verify-email",
"Period": "60m",
"Limit": 5
},
{
"Endpoint": "post:/accounts/delete-recover-token",
"Period": "1m",
"Limit": 2
},
{
"Endpoint": "post:/accounts/delete-recover",
"Period": "60m",
"Limit": 5
},
{
"Endpoint": "post:/two-factor/send-email",
"Period": "10m",
"Limit": 5
},
{
"Endpoint": "post:/two-factor/send-email-login",
"Period": "10m",
"Limit": 10
},
{
"Endpoint": "post:/two-factor/authenticator",
"Period": "1m",
"Limit": 3
},
{
"Endpoint": "post:/two-factor/email",
"Period": "1m",
"Limit": 3
},
{
"Endpoint": "get:/alive",
"Period": "1m",
"Limit": 5
},
{
"Endpoint": "get:/hibp/breach",
"Period": "2s",
"Limit": 1
},
{
"Endpoint": "post:/installations",
"Period": "2m",
"Limit": 2
},
{
"Endpoint": "post:/organizations/*/users/invite",
"Period": "1m",
"Limit": 5
},
{
"Endpoint": "post:/organizations/*/users/invite",
"Period": "1d",
"Limit": 300
},
{
"Endpoint": "post:/organizations/*/users/*/reinvite",
"Period": "1m",
"Limit": 5
},
{
"Endpoint": "post:/organizations/*/users/*/reinvite",
"Period": "1d",
"Limit": 300
},
{
"Endpoint": "post:/accounts/prelogin",
"Period": "1m",
"Limit": 10
}
]
},
"IpRateLimitPolicies": {
"IpRules": []
}
}