Skip to content

Commit 67c46bf

Browse files
committed
6.1.15
- [ENHANCEMENT] removed auto version for APP Config and replaced it with version being set as null - [ENHANCEMENT] add distributed configuration for API config with version allowed to be null to get latest DB version - [ENHANCEMENT] moved all cache settings to appsettings.json abd are hot reloadable - [ENHANCEMENT] add version, distributed_config,API_TRACE_ENABLED,API_TRACE_RECORD_IP and refresh to IApiConfiguration interface - [ENHANCEMENT] added refresh and version, and removed auto_version from IAppConfiguration interface - [ENHANCEMENT] refactored appliction dictionary configuration code - [ENHANCEMENT] moved API tracing keys to appsettings.json and are hot reloadable - [ENHANCEMENT] moved pefromance enabled flag to appsettings.json and is hot reloadable - [ENHANCEMENT] moved datatbase tracing flag to appsettings.json and is hot reloadable - [ENHANCEMENT] check if application and api settings needs to be updated once per API request rather than per key request - [ENHANCEMENT] updated consoleconfiguration.cs - [ENHANCEMENT] updated serviceconfiguration.cs - [BUG FIX] bug fix for serializing and deserializing userpincipal object
1 parent f44cfbb commit 67c46bf

40 files changed

+728
-460
lines changed

db/configuration/data script/APPSettings.sql

Lines changed: 2 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -49,42 +49,6 @@ FROM TS_API_SETTING
4949
where API_KEY = 'API_FIREBASE_APP_NAME')
5050
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_FIREBASE_APP_NAME','domain.extension','',1);
5151

52-
IF NOT EXISTS
53-
(SELECT 1
54-
FROM TS_API_SETTING
55-
where API_KEY = 'API_PERFORMANCE_ENABLED')
56-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_PERFORMANCE_ENABLED','FALSE','Performance - Switch on [TRUE] or off [FALSE] the Performance',0);
57-
58-
IF NOT EXISTS
59-
(SELECT 1
60-
FROM TS_API_SETTING
61-
where API_KEY = 'API_PERFORMANCE_DATABASE')
62-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_PERFORMANCE_DATABASE','defaultConnection','Performance - Choose the Database connection string where to store the records',0);
63-
64-
IF NOT EXISTS
65-
(SELECT 1
66-
FROM TS_API_SETTING
67-
where API_KEY = 'API_MEMCACHED_SALSA')
68-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_MEMCACHED_SALSA','xxx','MemCacheD - Salsa code to isolate the cache records form other applications or environments',1);
69-
70-
IF NOT EXISTS
71-
(SELECT 1
72-
FROM TS_API_SETTING
73-
where API_KEY = 'API_MEMCACHED_MAX_VALIDITY')
74-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_MEMCACHED_MAX_VALIDITY','2592000','MemCacheD - Maximum validity in number of seconds that MemCacheD can handle (30 days = 2592000) ',0);
75-
76-
IF NOT EXISTS
77-
(SELECT 1
78-
FROM TS_API_SETTING
79-
where API_KEY = 'API_FIREBASE_ENABLED')
80-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_MEMCACHED_MAX_SIZE','128','MemCacheD - Set the max size in MB before splitting a string record in sub-cache entries',0);
81-
82-
IF NOT EXISTS
83-
(SELECT 1
84-
FROM TS_API_SETTING
85-
where API_KEY = 'API_MEMCACHED_ENABLED')
86-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_MEMCACHED_ENABLED','FALSE','MemCacheD - Switch on [TRUE] or off [FALSE] the MemCacheD',0);
87-
8852
IF NOT EXISTS
8953
(SELECT 1
9054
FROM TS_API_SETTING
@@ -240,7 +204,7 @@ IF NOT EXISTS
240204
(SELECT 1
241205
FROM TS_API_SETTING
242206
where API_KEY = 'API_AD_BLACKLIST_OUS')
243-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_AD_BLACKLIST_OUS','','List of OU\''s to exclude from AD queries',1);
207+
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_AD_BLACKLIST_OUS','','List of OU\'s to exclude from AD queries',1);
244208
245209
IF NOT EXISTS
246210
(SELECT 1
@@ -291,31 +255,4 @@ IF NOT EXISTS
291255
(SELECT 1
292256
FROM TS_API_SETTING
293257
where API_KEY = 'SANITIZER_REMOVE_URI_ATTRIBUTES')
294-
INSERT INTO TS_API_SETTING VALUES(@APIID,'SANITIZER_REMOVE_URI_ATTRIBUTES','','List of URI attributes to remove',0);
295-
296-
IF NOT EXISTS
297-
(SELECT 1
298-
FROM TS_API_SETTING
299-
where API_KEY = 'API_TRACE_ENABLED')
300-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_TRACE_ENABLED','FALSE','TRACE - Switch on [TRUE] or off [FALSE] the api trace',0);
301-
302-
303-
IF NOT EXISTS
304-
(SELECT 1
305-
FROM TS_API_SETTING
306-
where API_KEY = 'API_TRACE_RECORD_IP')
307-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_TRACE_RECORD_IP','FALSE','record request ip - Switch on [TRUE] or off [FALSE]',0);
308-
309-
IF NOT EXISTS
310-
(SELECT 1
311-
FROM TS_API_SETTING
312-
where API_KEY = 'API_CACHE_TRACE_ENABLED')
313-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_CACHE_TRACE_ENABLED','FALSE','TRACE - Switch on [TRUE] or off [FALSE] the api cache trace',0);
314-
315-
316-
317-
IF NOT EXISTS
318-
(SELECT 1
319-
FROM TS_API_SETTING
320-
where API_KEY = 'API_DATABASE_TRACE_ENABLED')
321-
INSERT INTO TS_API_SETTING VALUES(@APIID,'API_DATABASE_TRACE_ENABLED','FALSE','TRACE - Switch on [TRUE] or off [FALSE] the api database trace',0);
258+
INSERT INTO TS_API_SETTING VALUES(@APIID,'SANITIZER_REMOVE_URI_ATTRIBUTES','','List of URI attributes to remove',0);

db/configuration/stored procedures/App_Setting_Deploy_Update.sql

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,14 @@ Inserts a record for each time that a configuration is read from the database in
99
REVISION HISTORY
1010
----------------
1111
CHANGE NO. DATE CHANGED BY REASON
12-
1 23/03/2023 Stephen Lane adding auto_version param so that latest version can always be retrieved instead of specific version
13-
12+
1 23/03/2023 Stephen Lane adding auto_version param so that latest version can always be retrieved instead of specific version
13+
2 21/11/2023 Stephen Lane changing foreign key relationship
1414
PEER REVIEW HISTORY
1515
-------------------
1616
REVIEW NO. DATE REVIEWED BY COMMENTS
1717
1818
*************************************************************************************/
19-
CREATE
20-
OR
21-
22-
ALTER PROCEDURE "dbo"."App_Setting_Deploy_Update" @app_settings_version DECIMAL(10, 2)
19+
CREATE or alter PROCEDURE "dbo"."App_Setting_Deploy_Update" @app_settings_version DECIMAL(10, 2)
2320
,@config_setting_type VARCHAR(10), @auto_version bit = null
2421
AS
2522
BEGIN
@@ -85,12 +82,18 @@ BEGIN
8582

8683
SELECT @machineIP = CONVERT(VARCHAR(100), CONNECTIONPROPERTY('client_net_address'))
8784

85+
declare @historyID int;
86+
87+
select @historyID = max(HSV_ID) from TM_HISTORY_APP_SETTING_CONFIG_VERSION
88+
where HSV_ASV_ID = @version_id;
89+
90+
8891
INSERT INTO [TM_HISTORY_APP_SETTING_CONFIG_VERSION_DEPLOY] (
89-
[HCD_ASV_ID]
92+
[HCD_HSV_ID]
9093
,[HCD_IP_ADDRESS]
9194
)
9295
VALUES (
93-
@version_id
96+
@historyID
9497
,@machineIP
9598
)
9699
END

db/configuration/tables/TM_HISTORY_APP_SETTING_CONFIG_VERSION_DEPLOY.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
CREATE TABLE [dbo].[TM_HISTORY_APP_SETTING_CONFIG_VERSION_DEPLOY] (
22
[HCD_ID] INT IDENTITY (1, 1) NOT NULL,
33
[HCD_DEPLOYED_TIME] datetime NOT NULL DEFAULT getdate(),
4-
[HCD_ASV_ID] INT NOT NULL,
4+
[HCD_HSV_ID] INT NOT NULL,
55
[HCD_IP_ADDRESS] varchar(100) NOT NULL,
66
PRIMARY KEY CLUSTERED ([HCD_ID] ASC),
7-
CONSTRAINT [FK_TM_HISTORY_APP_SETTING_CONFIG_VERSION_DEPLOY_TM_APP_SETTING_CONFIG_VERSION] FOREIGN KEY (HCD_ASV_ID) REFERENCES [TM_APP_SETTING_CONFIG_VERSION]([ASV_ID])
7+
CONSTRAINT [FK_TM_HISTORY_APP_SETTING_CONFIG_VERSION_DEPLOY_TM_HISTORY_APP_SETTING_CONFIG_VERSION] FOREIGN KEY ([HCD_HSV_ID]) REFERENCES [TM_HISTORY_APP_SETTING_CONFIG_VERSION]([HSV_ID])
88
);
99

1010
GO
@@ -39,7 +39,7 @@ EXEC sp_addextendedproperty @name = N'MS_Description',
3939
@level1type = N'TABLE',
4040
@level1name = N'TM_HISTORY_APP_SETTING_CONFIG_VERSION_DEPLOY',
4141
@level2type = N'COLUMN',
42-
@level2name = N'HCD_ASV_ID'
42+
@level2name = 'HCD_HSV_ID'
4343
GO
4444
EXEC sp_addextendedproperty @name = N'MS_Description',
4545
@value = N'ip address of server that loaded config item',

rls/packages/API.Library.6.1.15.nupkg

77 KB
Binary file not shown.

src/API.Library/API.Library.csproj

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,24 @@
1212
<PackageId>API.Library</PackageId>
1313
<Product>API Library</Product>
1414
<Copyright>Central Statistics Office, Ireland</Copyright>
15-
<Version>6.1.14</Version>
15+
<Version>6.1.15</Version>
1616
<Authors>Central Statistics Office, Ireland</Authors>
1717
<SignAssembly>False</SignAssembly>
1818
<RepositoryUrl>https://github.com/CSOIreland/Server-API-Library</RepositoryUrl>
1919
<PackageReleaseNotes>
20-
- [ENHANCEMENT] added date formatting for headers
21-
- [ENHANCEMENT] added cache control public, content length '0' for restful response
22-
- [ENHANCEMENT] changing userprincipal cache object to only cache a subset of keys rather than whole object
23-
- [ENHANCEMENT] add cache tracing
24-
- [ENHANCEMENT] adding api tracing in trace directory
25-
- [ENHANCEMENT] adding Ad enabled account check when authenticating user in API
26-
- [ENHANCEMENT] adding database tracing
27-
- [ENHANCEMENT] removing UserPrincipalForLogging as no longer needed
28-
- [ENHANCEMENT] changed root id to correlation id
29-
- [ENHANCEMENT] added correlationID as a parameter passed as part of apiRequest params
30-
- [ENHANCEMENT] refactored how individual AD object being created
31-
- [ENHANCEMENT] removed this function 'ExecuteBulkCopy' function with 'SqlBulkCopyColumnMapping' and refactored code as necessary
20+
- [ENHANCEMENT] removed auto version for APP Config and replaced it with version being set as null
21+
- [ENHANCEMENT] add distributed configuration for API config with version allowed to be null to get latest DB version
22+
- [ENHANCEMENT] moved all cache settings to appsettings.json abd are hot reloadable
23+
- [ENHANCEMENT] add version, distributed_config,API_TRACE_ENABLED,API_TRACE_RECORD_IP and refresh to IApiConfiguration interface
24+
- [ENHANCEMENT] added refresh and version, and removed auto_version from IAppConfiguration interface
25+
- [ENHANCEMENT] refactored appliction dictionary configuration code
26+
- [ENHANCEMENT] moved API tracing keys to appsettings.json and are hot reloadable
27+
- [ENHANCEMENT] moved pefromance enabled flag to appsettings.json and is hot reloadable
28+
- [ENHANCEMENT] moved datatbase tracing flag to appsettings.json and is hot reloadable
29+
- [ENHANCEMENT] check if application and api settings needs to be updated once per API request rather than per key request
30+
- [ENHANCEMENT] updated consoleconfiguration.cs
31+
- [ENHANCEMENT] updated serviceconfiguration.cs
32+
- [BUG FIX] bug fix for serializing and deserializing userpincipal object
3233
</PackageReleaseNotes>
3334
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
3435
<RestoreLockedMode>true</RestoreLockedMode>
@@ -41,7 +42,9 @@
4142
</ItemGroup>
4243

4344
<ItemGroup>
45+
<None Remove="Config\CommonConfig.cs~RF52c4cb0.TMP" />
4446
<None Remove="Entities\ADO.cs~RF5780ef96.TMP" />
47+
<None Remove="Entities\API.Common.cs~RF1e6b9c0d.TMP" />
4548
<None Remove="Entities\MemCacheD.cs~RFcba3198.TMP" />
4649
<None Remove="log4net.config" />
4750
</ItemGroup>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using Microsoft.Extensions.Options;
2+
3+
namespace API
4+
{
5+
6+
public class APIPerformanceConfiguration : IAPIPerformanceConfiguration
7+
{
8+
internal static IOptionsMonitor<APIPerformanceSettings> _APIPerformanceSettingsDelegate;
9+
public APIPerformanceConfiguration(IOptionsMonitor<APIPerformanceSettings> APIPerformanceSettingsDelegate)
10+
{
11+
_APIPerformanceSettingsDelegate = APIPerformanceSettingsDelegate;
12+
}
13+
14+
public bool API_PERFORMANCE_ENABLED
15+
{
16+
get
17+
{
18+
return _APIPerformanceSettingsDelegate.CurrentValue.API_PERFORMANCE_ENABLED;
19+
}
20+
}
21+
22+
}
23+
}

0 commit comments

Comments
 (0)