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

fix(sql): 🐛 Fixes a bug where Warning components weren't display text #521

Merged
merged 2 commits into from
Feb 20, 2024

Conversation

jimwashbrook
Copy link
Collaborator

No description provided.

Copy link
Contributor

SQL Risks Found

./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSprocFix.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSprocFix.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: alter procedure getsectionstatuses @splitstringval nvarchar(255) as declare @val
nvarchar(50) create table #splittable(val nvarchar(50)) create table
#returntable(sectionid nvarchar(50), completed int, maturity nvarchar(20),
datecreated datetime) insert into #splittable select * from
string_split(@splitstringval, ',') declare db_cursor cursor for select val from
#splittable open db_cursor fetch next from db_cursor into @val while
@@fetch_status = 0 begin insert into #returntable select top 1 sectionid,
completed, maturity, datecreated from submission where sectionid = @val order by
datecreated desc fetch next from db_cursor into @val end close db_cursor
deallocate db_cursor select * from #returntable;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSprocFix.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at lines 8, 28]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230921_1150_DeleteAnalyticsUser.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230921_1150_DeleteAnalyticsUser.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: if exists (select * from sys.database_principals where name = 'analyticsuser')
begin drop user [analyticsuser] end;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230921_1150_DeleteAnalyticsUser.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at line 1]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230922_1420_UpdateGetSectionStatusToAcceptEstablishmentId.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230922_1420_UpdateGetSectionStatusToAcceptEstablishmentId.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: alter procedure getsectionstatuses @splitstringval nvarchar(255),
@establishmentid int as declare @val nvarchar(50) create table #splittable(val
nvarchar(50)) create table #returntable(sectionid nvarchar(50), completed int,
maturity nvarchar(20), datecreated datetime) insert into #splittable select *
from string_split(@splitstringval, ',') declare db_cursor cursor for select val
from #splittable open db_cursor fetch next from db_cursor into @val while
@@fetch_status = 0 begin insert into #returntable select top 1 sectionid,
completed, maturity, datecreated from submission where sectionid = @val and
establishmentid = @establishmentid order by datecreated desc fetch next from
db_cursor into @val end close db_cursor deallocate db_cursor select * from
#returntable;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230922_1420_UpdateGetSectionStatusToAcceptEstablishmentId.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at lines 10, 31]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230718_168650_GetSectionStatusesSproc.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230718_168650_GetSectionStatusesSproc.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: create procedure getsectionstatuses @splitstringval nvarchar(255) as declare
@val nvarchar(50) create table #splittable(val nvarchar(50)) create table
#returntable(sectionid nvarchar(50), completed int) insert into #splittable
select * from string_split(@splitstringval, ',') declare db_cursor cursor for
select val from #splittable open db_cursor fetch next from db_cursor into @val
while @@fetch_status = 0 begin insert into #returntable select top 1 sectionid,
completed from submission where sectionid = @val order by datecreated desc fetch
next from db_cursor into @val end close db_cursor deallocate db_cursor select *
from #returntable;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230718_168650_GetSectionStatusesSproc.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at lines 8, 29]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230913_1224_UpdateSubmissionNullability.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230913_1224_UpdateSubmissionNullability.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: begin tran select id into #submissionids from [dbo].[submission] where sectionid
is null or sectionname is null delete from [dbo].[response] where exists (select
* from #submissionids where submissionid = #submissionids.id) delete from
[dbo].[submission] where sectionid is null or sectionname is null alter table
[dbo].[submission] alter column [sectionid] [nvarchar](50) not null alter table
[dbo].[submission] alter column [sectionname] [nvarchar](50) not null alter
table [dbo].[submission] drop column [recomendationid] commit tran;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230913_1224_UpdateSubmissionNullability.sql]: (HIGH RISK) (LOGICAL_DATABASE_DESIGN ANTI-PATTERN) Generic Primary Key
[Matching Expression: id at line 2]

[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230913_1224_UpdateSubmissionNullability.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at line 4]


==================== Summary ===================
All Anti-Patterns and Hints  :: 2
>  High Risk   :: 2
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSproc.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSproc.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: alter procedure getsectionstatuses @splitstringval nvarchar(255) as declare @val
nvarchar(50) create table #splittable(val nvarchar(50)) create table
#returntable(sectionid nvarchar(50), completed int) insert into #splittable
select * from string_split(@splitstringval, ',') declare db_cursor cursor for
select val from #splittable open db_cursor fetch next from db_cursor into @val
while @@fetch_status = 0 begin insert into #returntable select top 1 sectionid,
completed, maturity, datecreated from submission where sectionid = @val order by
datecreated desc fetch next from db_cursor into @val end close db_cursor
deallocate db_cursor select * from #returntable;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSproc.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at lines 8, 29]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240111_0919_CreateAllRichTextContentForPageSlugFunction.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240111_0919_CreateAllRichTextContentForPageSlugFunction.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 2: create function [contentful].[selectallrichtextcontentforpageslug] ( @pageslug
nvarchar(max) ) returns @returntable table(id bigint, [value] nvarchar(max),
nodetype nvarchar(max), dataid bigint, parentid bigint) begin declare
@contentcomponentids table (id nvarchar(max)) declare @richtextids table (id
nvarchar(max)) insert into @contentcomponentids select
concat([beforecontentcomponentid], [contentcomponentid]) contentcomponentid from
[contentful].[pagecontents] pc left join [contentful].[pages] p on pc.pageid =
p.id where p.slug = @pageslug insert into @richtextids select richtextid from
[contentful].[textbodies] where id in (select * from @contentcomponentids) union
select richtextid from [contentful].[warnings] as w left join
[contentful].[textbodies] as tb on w.textid = tb.id where w.id in (select * from
@contentcomponentids) declare @idcolumn int select @idcolumn = min(id) from
@richtextids while @idcolumn is not null begin insert into @returntable select
[id], [value], [nodetype], [dataid], [parentid] from
[contentful].[selectallrichtextcontentforparentid](@idcolumn) select @idcolumn =
min(id) from @richtextids where id > @idcolumn end return end;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240111_0919_CreateAllRichTextContentForPageSlugFunction.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at lines 16, 20]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1647_CreateRichTextContentWithPageSlugView.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1647_CreateRichTextContentWithPageSlugView.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: create or alter view [contentful].[richtextcontentsbyslug] as ( select [slug],
[id], [value], [nodetype], [dataid], [parentid], [published], [archived],
[deleted] from ( select [richtextid], [slug], [archived], [deleted], [published]
from ( --- get richtextids for all text bodies and warnings select [richtextid],
[id] as [contentid] from [contentful].[textbodies] as tb union select
[richtextid], [tb].[id] as [contentid] from [contentful].[warnings] as w left
join [contentful].[textbodies] as tb on [w].[textid] = [tb].[id] ) as richtexts
left join --get all contents for a page ( select max([slug]) as [slug],
[contentid] from ( select isnull( [beforecontentcomponentid],
[contentcomponentid] ) as [contentid], [p].[slug] from
[contentful].[pagecontents] pc left join [contentful].[pages] p on [pc].[pageid]
= [p].[id] ) as pc group by [pc].[contentid] ) as contents on
[contents].[contentid] = [richtexts].[contentid] left join( select [id],
[archived], [published], [deleted] from [contentful].[contentcomponents] ) as cc
on [cc].[id] = [richtexts].[contentid] ) as richtextcontents outer apply (
select [id], [value], [nodetype], [dataid], [parentid] from
[contentful].[selectallrichtextcontentforparentid]([richtextcontents].[richtextid]) ) as richtextcontentswithslug );
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1647_CreateRichTextContentWithPageSlugView.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) JOIN Without Equality Check
[Matching Expression: join --get all contents for a page ( select max([slug]) as [slug], [contentid]
from ( select isnull( [beforecontentcomponentid], [contentcomponentid] ) as
[contentid], [p].[slug] from [contentful].[pagecontents] pc left at line 37]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/EnvironmentSpecificScripts/dev/2023/20230810_110900_DeleteDataForEstablishmentSproc.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/EnvironmentSpecificScripts/dev/2023/20230810_110900_DeleteDataForEstablishmentSproc.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: create procedure [dbo].[deletedataforestablishment] @establishmentref
nvarchar(50) as begin try begin tran declare @establishmentuid int declare
@rowsdeletedcount int select @establishmentuid = id from [dbo].[establishment]
where establishmentref = @establishmentref select id, establishmentid into
#submissionids from [dbo].[submission] where [submission].establishmentid =
@establishmentuid delete from[dbo].[response] where exists (select * from
#submissionids where [response].submissionid = #submissionids.id) delete from
[dbo].[submission] where [submission].establishmentid = @establishmentuid commit
tran return @@rowcount end try begin catch rollback tran return 0 end catch;
[./src/Dfe.PlanTech.DatabaseUpgrader/EnvironmentSpecificScripts/dev/2023/20230810_110900_DeleteDataForEstablishmentSproc.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at line 17]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0

@jimwashbrook jimwashbrook added the bug Something isn't working label Feb 19, 2024
@jimwashbrook jimwashbrook changed the title fix(sql): Fixes a bug where Warning components weren't display text fix(sql): 🐛 Fixes a bug where Warning components weren't display text Feb 19, 2024
Copy link
Contributor

SQL Risks Found

./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSprocFix.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSprocFix.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: alter procedure getsectionstatuses @splitstringval nvarchar(255) as declare @val
nvarchar(50) create table #splittable(val nvarchar(50)) create table
#returntable(sectionid nvarchar(50), completed int, maturity nvarchar(20),
datecreated datetime) insert into #splittable select * from
string_split(@splitstringval, ',') declare db_cursor cursor for select val from
#splittable open db_cursor fetch next from db_cursor into @val while
@@fetch_status = 0 begin insert into #returntable select top 1 sectionid,
completed, maturity, datecreated from submission where sectionid = @val order by
datecreated desc fetch next from db_cursor into @val end close db_cursor
deallocate db_cursor select * from #returntable;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSprocFix.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at lines 8, 28]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230921_1150_DeleteAnalyticsUser.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230921_1150_DeleteAnalyticsUser.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: if exists (select * from sys.database_principals where name = 'analyticsuser')
begin drop user [analyticsuser] end;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230921_1150_DeleteAnalyticsUser.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at line 1]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230922_1420_UpdateGetSectionStatusToAcceptEstablishmentId.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230922_1420_UpdateGetSectionStatusToAcceptEstablishmentId.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: alter procedure getsectionstatuses @splitstringval nvarchar(255),
@establishmentid int as declare @val nvarchar(50) create table #splittable(val
nvarchar(50)) create table #returntable(sectionid nvarchar(50), completed int,
maturity nvarchar(20), datecreated datetime) insert into #splittable select *
from string_split(@splitstringval, ',') declare db_cursor cursor for select val
from #splittable open db_cursor fetch next from db_cursor into @val while
@@fetch_status = 0 begin insert into #returntable select top 1 sectionid,
completed, maturity, datecreated from submission where sectionid = @val and
establishmentid = @establishmentid order by datecreated desc fetch next from
db_cursor into @val end close db_cursor deallocate db_cursor select * from
#returntable;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230922_1420_UpdateGetSectionStatusToAcceptEstablishmentId.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at lines 10, 31]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230718_168650_GetSectionStatusesSproc.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230718_168650_GetSectionStatusesSproc.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: create procedure getsectionstatuses @splitstringval nvarchar(255) as declare
@val nvarchar(50) create table #splittable(val nvarchar(50)) create table
#returntable(sectionid nvarchar(50), completed int) insert into #splittable
select * from string_split(@splitstringval, ',') declare db_cursor cursor for
select val from #splittable open db_cursor fetch next from db_cursor into @val
while @@fetch_status = 0 begin insert into #returntable select top 1 sectionid,
completed from submission where sectionid = @val order by datecreated desc fetch
next from db_cursor into @val end close db_cursor deallocate db_cursor select *
from #returntable;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230718_168650_GetSectionStatusesSproc.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at lines 8, 29]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230913_1224_UpdateSubmissionNullability.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230913_1224_UpdateSubmissionNullability.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: begin tran select id into #submissionids from [dbo].[submission] where sectionid
is null or sectionname is null delete from [dbo].[response] where exists (select
* from #submissionids where submissionid = #submissionids.id) delete from
[dbo].[submission] where sectionid is null or sectionname is null alter table
[dbo].[submission] alter column [sectionid] [nvarchar](50) not null alter table
[dbo].[submission] alter column [sectionname] [nvarchar](50) not null alter
table [dbo].[submission] drop column [recomendationid] commit tran;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230913_1224_UpdateSubmissionNullability.sql]: (HIGH RISK) (LOGICAL_DATABASE_DESIGN ANTI-PATTERN) Generic Primary Key
[Matching Expression: id at line 2]

[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230913_1224_UpdateSubmissionNullability.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at line 4]


==================== Summary ===================
All Anti-Patterns and Hints  :: 2
>  High Risk   :: 2
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSproc.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSproc.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: alter procedure getsectionstatuses @splitstringval nvarchar(255) as declare @val
nvarchar(50) create table #splittable(val nvarchar(50)) create table
#returntable(sectionid nvarchar(50), completed int) insert into #splittable
select * from string_split(@splitstringval, ',') declare db_cursor cursor for
select val from #splittable open db_cursor fetch next from db_cursor into @val
while @@fetch_status = 0 begin insert into #returntable select top 1 sectionid,
completed, maturity, datecreated from submission where sectionid = @val order by
datecreated desc fetch next from db_cursor into @val end close db_cursor
deallocate db_cursor select * from #returntable;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2023/20230725_166107_ModifyGetSectionStatusesSproc.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at lines 8, 29]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240111_0919_CreateAllRichTextContentForPageSlugFunction.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240111_0919_CreateAllRichTextContentForPageSlugFunction.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 2: create function [contentful].[selectallrichtextcontentforpageslug] ( @pageslug
nvarchar(max) ) returns @returntable table(id bigint, [value] nvarchar(max),
nodetype nvarchar(max), dataid bigint, parentid bigint) begin declare
@contentcomponentids table (id nvarchar(max)) declare @richtextids table (id
nvarchar(max)) insert into @contentcomponentids select
concat([beforecontentcomponentid], [contentcomponentid]) contentcomponentid from
[contentful].[pagecontents] pc left join [contentful].[pages] p on pc.pageid =
p.id where p.slug = @pageslug insert into @richtextids select richtextid from
[contentful].[textbodies] where id in (select * from @contentcomponentids) union
select richtextid from [contentful].[warnings] as w left join
[contentful].[textbodies] as tb on w.textid = tb.id where w.id in (select * from
@contentcomponentids) declare @idcolumn int select @idcolumn = min(id) from
@richtextids while @idcolumn is not null begin insert into @returntable select
[id], [value], [nodetype], [dataid], [parentid] from
[contentful].[selectallrichtextcontentforparentid](@idcolumn) select @idcolumn =
min(id) from @richtextids where id > @idcolumn end return end;
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240111_0919_CreateAllRichTextContentForPageSlugFunction.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at lines 16, 20]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1647_CreateRichTextContentWithPageSlugView.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1647_CreateRichTextContentWithPageSlugView.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: create or alter view [contentful].[richtextcontentsbyslug] as ( select [slug],
[id], [value], [nodetype], [dataid], [parentid], [published], [archived],
[deleted] from ( select [richtextid], [slug], [archived], [deleted], [published]
from ( --- get richtextids for all text bodies and warnings select [richtextid],
[id] as [contentid] from [contentful].[textbodies] as tb union select
[richtextid], [tb].[id] as [contentid] from [contentful].[warnings] as w left
join [contentful].[textbodies] as tb on [w].[textid] = [tb].[id] ) as richtexts
left join --get all contents for a page ( select max([slug]) as [slug],
[contentid] from ( select isnull( [beforecontentcomponentid],
[contentcomponentid] ) as [contentid], [p].[slug] from
[contentful].[pagecontents] pc left join [contentful].[pages] p on [pc].[pageid]
= [p].[id] ) as pc group by [pc].[contentid] ) as contents on
[contents].[contentid] = [richtexts].[contentid] left join( select [id],
[archived], [published], [deleted] from [contentful].[contentcomponents] ) as cc
on [cc].[id] = [richtexts].[contentid] ) as richtextcontents outer apply (
select [id], [value], [nodetype], [dataid], [parentid] from
[contentful].[selectallrichtextcontentforparentid]([richtextcontents].[richtextid]) ) as richtextcontentswithslug );
[./src/Dfe.PlanTech.DatabaseUpgrader/Scripts/2024/20240209_1647_CreateRichTextContentWithPageSlugView.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) JOIN Without Equality Check
[Matching Expression: join --get all contents for a page ( select max([slug]) as [slug], [contentid]
from ( select isnull( [beforecontentcomponentid], [contentcomponentid] ) as
[contentid], [p].[slug] from [contentful].[pagecontents] pc left at line 37]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0
./src/Dfe.PlanTech.DatabaseUpgrader/EnvironmentSpecificScripts/dev/2023/20230810_110900_DeleteDataForEstablishmentSproc.sql
+-------------------------------------------------+
|                   SQLCHECK                      |
+-------------------------------------------------+
> RISK LEVEL    :: ONLY MEDIUM AND HIGH RISK ANTI-PATTERNS
> SQL FILE NAME :: ./src/Dfe.PlanTech.DatabaseUpgrader/EnvironmentSpecificScripts/dev/2023/20230810_110900_DeleteDataForEstablishmentSproc.sql
> COLOR MODE    :: DISABLED
> VERBOSE MODE  :: DISABLED
> DELIMITER     :: ;
-------------------------------------------------
==================== Results ===================

-------------------------------------------------
SQL Statement at line 1: create procedure [dbo].[deletedataforestablishment] @establishmentref
nvarchar(50) as begin try begin tran declare @establishmentuid int declare
@rowsdeletedcount int select @establishmentuid = id from [dbo].[establishment]
where establishmentref = @establishmentref select id, establishmentid into
#submissionids from [dbo].[submission] where [submission].establishmentid =
@establishmentuid delete from[dbo].[response] where exists (select * from
#submissionids where [response].submissionid = #submissionids.id) delete from
[dbo].[submission] where [submission].establishmentid = @establishmentuid commit
tran return @@rowcount end try begin catch rollback tran return 0 end catch;
[./src/Dfe.PlanTech.DatabaseUpgrader/EnvironmentSpecificScripts/dev/2023/20230810_110900_DeleteDataForEstablishmentSproc.sql]: (HIGH RISK) (QUERY ANTI-PATTERN) SELECT *
[Matching Expression: select * at line 17]


==================== Summary ===================
All Anti-Patterns and Hints  :: 1
>  High Risk   :: 1
>  Medium Risk :: 0
>  Low Risk    :: 0
>  Hints       :: 0

Copy link

sonarcloud bot commented Feb 19, 2024

Quality Gate Passed Quality Gate passed

Issues
0 New issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

@jimwashbrook jimwashbrook merged commit f62c455 into development Feb 20, 2024
20 checks passed
@jimwashbrook jimwashbrook deleted the fix/content-sql-query branch February 20, 2024 11:29
Copy link
Contributor

🎉 This PR is included in version 1.6.0-pre-dev.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Copy link
Contributor

🎉 This PR is included in version 1.6.0-development.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

jimwashbrook added a commit that referenced this pull request Feb 29, 2024
* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

* tests: Initial programatic E2E tests work (#493)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: add missing comma

* fix: file names, null data

* fix: add relative path

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* tests: Add category and sections to programatic tests (#494)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* fix: remove file

* feaT: Process sections and categories on /self-assessment page

* fix: skip test due to missing data

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* tests: Refactor existing work on dynamic E2E tests (#496)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* refactor: cleanup duplicated code.

* merge development

* chore: delete old dupe files

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* fix: checkout repo

* refactor: remove superseded workflow

* refactor: add relevant triggers to paths and run some in parallel

* refactor: concurrency groups, pass artifact name as variable

* refactor: concurrency group naming

* chore: remove debug code

* tests: Navigate through every question in a sub-topic using Contentful data (#499)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* tests: E2E tests for every possible recommendation page (#500)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* feat: validate every recommendation for every maturity

* feat: validate recommendation pages

* chore: revert testing things

* refactor: delete unused workflow

* chore: update various versions in workflows

* chore: update various versions in custom actions

* tests: Last E2E component tests (#501)

* fix: Test interstitial page content + replace all whitespaces

* chore: remove empty line

* tests: validate warning component + button with entry reference

* chore: remove log command

* feat: inset text validator + slight refactor

* feat: Test nav link

* docs: update components done

* terraform-docs: automated action

* refactor: see what happens if v2 is changed to v3 for terraform setup

* refactor: see what happens if v2 is changed to v3 for terraform setup

* chore: remove todo

* tests: Split up unit tests by page/section (#502)

* tests: Split up unit tests by page/section

* fix: unauthorised pages

* fix: only test unauthorised pages again

* chore: remove unused var

* chore: remove unused before

* chore: remove log command

* chore: remove log command

* Qa view spike (#504)

* test graphiz dependency install in actions

* test graphiz dependency install in actions

* image output upload

* image upload

* test

* correct location for generated images

* output artifact id

* output artifact id

* test building link to artifact

* retrieve data from sql server

* retrieve data from sql server

* list files

* Add visualisation script to loop through the data files to create viz for each section

* call the teams webhook

* typo

* typo

* test using AD connection string

* retest

* Use access token for DB connection

* use dev environment just for testing

* add required variables

* test building sql connection rather than from secret

* Add new question/answer visaulisation workflow

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* wip cleanup (#498)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* chore: upgrade missed version

* refactor: merge ShouldDropMessage and ShouldIgnoreMessage

* Format visualisations (#506)

* Add formatting to visualisations, removes cron schedule from workflow and add as job within matrix deploy

* add -y flag for any prompts

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* refactor: Log which required properties are null in such an event

* chore: remove block comment

* fix: RichText retrieval bug (#507)

- Fixes types in `@RichTextIds` and `idColumn`
- Optimised the querying of the fetching of the `ContentComponentIds` and the `RichTextIds`

* refactor: Check validity of component always

* refactor: remove unused parameter

* refactor: remove unused parameter

* refactor: update dotnet-coverage to latest

* refactor: rollback dotnet-coverage to last known good version

* fix: rollback dotnet-coverage for sonarcloud

* test: update tests

* Feat/cleanup (#512)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* refactor: change valid component logic

* chore: move node unit tests package files to actual folder (#515)

* chore: move node unit tests package files to actual folder

- These were originally in root dir incase we had tests spread out across multiple projects. Which we don't so this just cleans it up.

* fix: test path

Swear I already changed this but apparently not.

* chore: Update all nuget packages. (#510)

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* feat: Convert RichTextContents function into a view (#509)

* feat: refactor function RichTextContents by page into view

* fix: correct type

* Linted Code in Dfe.PlanTech.Domain/

* chore: linting + remove unnecessary query

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* fix: remove broken sql

* chore: small refactor + consistency changes

- Removes unncessary toplevel `SELECT *` statement
- Made every table name + column name in [] to ensure consistency
- Added actual columns to the `SELECT` query for the function

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Feat/cleanup (#517)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* Linted Code in Dfe.PlanTech.Infrastructure.Contentful/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor: W.I.P add semantic versioning

* refactor: global install semantic-release

* refactor: install dependencies

* refactor: install dependencies with versions

* feat: use semantic versioning

* refactor: run it on push test

* refactor: tag change

* refactor: create contentful entity classes

* Feat/cleanup (#518)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* refactor: change string to Title component

* fix(sql): 🐛 Fixes a bug where Warning components weren't display text (#521)

* fix(sql): Fixes a bug where Warning components weren't display text

* fix: missing marks and data

* refactor: change Maturity enum to string

* refactor: rename variables to match cms

* refactor: add Title field to RecommendationChunk

* refactor: change title component to header component

* feat: Update Gov UK Packages (#523)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype (#525)

**:sparkles: Features**:

- Add the `step by step navigation` JS and CSS from the `@govuk-prototype-kit/step-by-step` package

**:adhesive_bandage: Fixes**:

- Updates the `Warning component` tag helper, to use the new class to hide the warning text.

* refactor: update interfaces

* test: add temp dummy tests

* refactor: use generic type in interface

* fix: :green_heart: Semver release (#527)

* fix: Remove exec commands

* ⚡: Update Category + Recommendation View Components (#529)

* 💄: Update Tag colour to match changes

- In [version 5](alphagov/govuk-design-system-backlog#62 (comment)) of the GDS front-end packages, they have changed the tag colours. As a result, our "dark blue" tag no longer existed, so all of our tags were using the default colours.
- Changed tag colour match changes.

:zap: Changed GetSectionSubmissionStatuses to return List

- Improves performance by not having to call `.ToList` on an object that is already a List

* :zap:: Make recommendations + category views async

* fix: ignore capitalisation

* fix: Web unit tests

* fix: Application tests

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: change test tag name

* refactor: add debug paths

* refactor: remove debug code

* refactor: change Title to string, link SubtopicRecommendation to subtopic

* Feat/accordion view step by step (#528)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* WIP - accordion view component

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype

* feat: Accordion view component added.

* feat: Accordion view component added.

* WIP

* WIP - step by step accordion component

* feat: basic step by step accordion component view

* resolve merge conflict

* Updated JS + CSS files

* feat: Step by step accordion view component added.

* Linted Code in Dfe.PlanTech.Domain/

---------

Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔨 Workflow + SQL script to clear user data from DB (#531)

* fix: add file extension

* feat: Initial script to clear DB

* fix: correct ordering, add signin table, remove *

* chore: move sql script

Otherwise it would run on every environment when deployed and clear the data... Whoops.

* cicd: Add workflow

* feat: disallow production

* TESTING: check inputs works.

* UNDO TEST CHANGES

* fix(?): remove init from BeforeContent

- This simply added the class `js-enabled` to the Body element. This seemed to already be covered by the `initAll()` functionality from the govuk-frontend.js file

* fix: remove step by step navigation js from layout (#533)

* chore: Add GovUK body class script in (#534)

Removed this yesterday in an erroneous attempt to fix the E2E tests. It's necessary for the GOV UK front-end initialisation script though so I've added back in.

* Feat/CodeCleanup (#524)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: Fix SQL script to clear DB (#536)

- For some reason the 'Go' commands weren't working from the workflow (although worked directly on DB). Removed.
- Tweaked CI/CD pipeline a bit to ensure safety

* docs(workflows): 📝 Add workflow changes to docs (#537)

* 📝(workflows) Add new workflows to documentation

- Add information on the `create-tag-release` workflow
- Add information on the `clear-user-data-from-db` workflow
- Moves the information about the `terraform-pr-check` workflow lower down in the document so that it is in alphabetical order

* 📝(workflows) Add TOC

GitHub should automatically have one available but you have to toggle it and this will be immediately visible.

* chore: Packages Update (#540)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

* Package updates

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: remove text match check (#542)

* fix(197631): 🐛 Fix content ordering on page (#541)

* feat: add error catching

* feat: add join table properties

* chore: remove debug lines

* chore: formatting

* feat: add order pagecontent

* feat: order contents

* refactor: cleanup ordering

* tests: Check for order

* tests: Update unit tests

* tests: Update unit tests

* chore: rename to be more descriptive

* Trigger tf doc update (#544)

* Trigger tf doc update

* terraform-docs: automated action

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: 💄 css stylings (#546)

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file (#547)

* fix: 💄 css stylings

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file

* feat: Add order column to PageContents (#549)

* cicd: don't lint if dir not had changes

* feat: add order columnt ot able

* fix: remove incorrect changes

---------

Co-authored-by: jimwashbrook <131891854+jimwashbrook@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>
Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>
Iain-Stanger added a commit that referenced this pull request Feb 29, 2024
* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

* tests: Initial programatic E2E tests work (#493)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: add missing comma

* fix: file names, null data

* fix: add relative path

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* tests: Add category and sections to programatic tests (#494)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* fix: remove file

* feaT: Process sections and categories on /self-assessment page

* fix: skip test due to missing data

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* tests: Refactor existing work on dynamic E2E tests (#496)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* refactor: cleanup duplicated code.

* merge development

* chore: delete old dupe files

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* fix: checkout repo

* refactor: remove superseded workflow

* refactor: add relevant triggers to paths and run some in parallel

* refactor: concurrency groups, pass artifact name as variable

* refactor: concurrency group naming

* chore: remove debug code

* tests: Navigate through every question in a sub-topic using Contentful data (#499)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* tests: E2E tests for every possible recommendation page (#500)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* feat: validate every recommendation for every maturity

* feat: validate recommendation pages

* chore: revert testing things

* refactor: delete unused workflow

* chore: update various versions in workflows

* chore: update various versions in custom actions

* tests: Last E2E component tests (#501)

* fix: Test interstitial page content + replace all whitespaces

* chore: remove empty line

* tests: validate warning component + button with entry reference

* chore: remove log command

* feat: inset text validator + slight refactor

* feat: Test nav link

* docs: update components done

* terraform-docs: automated action

* refactor: see what happens if v2 is changed to v3 for terraform setup

* refactor: see what happens if v2 is changed to v3 for terraform setup

* chore: remove todo

* tests: Split up unit tests by page/section (#502)

* tests: Split up unit tests by page/section

* fix: unauthorised pages

* fix: only test unauthorised pages again

* chore: remove unused var

* chore: remove unused before

* chore: remove log command

* chore: remove log command

* Qa view spike (#504)

* test graphiz dependency install in actions

* test graphiz dependency install in actions

* image output upload

* image upload

* test

* correct location for generated images

* output artifact id

* output artifact id

* test building link to artifact

* retrieve data from sql server

* retrieve data from sql server

* list files

* Add visualisation script to loop through the data files to create viz for each section

* call the teams webhook

* typo

* typo

* test using AD connection string

* retest

* Use access token for DB connection

* use dev environment just for testing

* add required variables

* test building sql connection rather than from secret

* Add new question/answer visaulisation workflow

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* wip cleanup (#498)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* chore: upgrade missed version

* refactor: merge ShouldDropMessage and ShouldIgnoreMessage

* Format visualisations (#506)

* Add formatting to visualisations, removes cron schedule from workflow and add as job within matrix deploy

* add -y flag for any prompts

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* refactor: Log which required properties are null in such an event

* chore: remove block comment

* fix: RichText retrieval bug (#507)

- Fixes types in `@RichTextIds` and `idColumn`
- Optimised the querying of the fetching of the `ContentComponentIds` and the `RichTextIds`

* refactor: Check validity of component always

* refactor: remove unused parameter

* refactor: remove unused parameter

* refactor: update dotnet-coverage to latest

* refactor: rollback dotnet-coverage to last known good version

* fix: rollback dotnet-coverage for sonarcloud

* test: update tests

* Feat/cleanup (#512)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* refactor: change valid component logic

* chore: move node unit tests package files to actual folder (#515)

* chore: move node unit tests package files to actual folder

- These were originally in root dir incase we had tests spread out across multiple projects. Which we don't so this just cleans it up.

* fix: test path

Swear I already changed this but apparently not.

* chore: Update all nuget packages. (#510)

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* feat: Convert RichTextContents function into a view (#509)

* feat: refactor function RichTextContents by page into view

* fix: correct type

* Linted Code in Dfe.PlanTech.Domain/

* chore: linting + remove unnecessary query

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* fix: remove broken sql

* chore: small refactor + consistency changes

- Removes unncessary toplevel `SELECT *` statement
- Made every table name + column name in [] to ensure consistency
- Added actual columns to the `SELECT` query for the function

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Feat/cleanup (#517)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* Linted Code in Dfe.PlanTech.Infrastructure.Contentful/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor: W.I.P add semantic versioning

* refactor: global install semantic-release

* refactor: install dependencies

* refactor: install dependencies with versions

* feat: use semantic versioning

* refactor: run it on push test

* refactor: tag change

* refactor: create contentful entity classes

* Feat/cleanup (#518)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* refactor: change string to Title component

* fix(sql): 🐛 Fixes a bug where Warning components weren't display text (#521)

* fix(sql): Fixes a bug where Warning components weren't display text

* fix: missing marks and data

* refactor: change Maturity enum to string

* refactor: rename variables to match cms

* refactor: add Title field to RecommendationChunk

* refactor: change title component to header component

* feat: Update Gov UK Packages (#523)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype (#525)

**:sparkles: Features**:

- Add the `step by step navigation` JS and CSS from the `@govuk-prototype-kit/step-by-step` package

**:adhesive_bandage: Fixes**:

- Updates the `Warning component` tag helper, to use the new class to hide the warning text.

* refactor: update interfaces

* test: add temp dummy tests

* refactor: use generic type in interface

* fix: :green_heart: Semver release (#527)

* fix: Remove exec commands

* ⚡: Update Category + Recommendation View Components (#529)

* 💄: Update Tag colour to match changes

- In [version 5](alphagov/govuk-design-system-backlog#62 (comment)) of the GDS front-end packages, they have changed the tag colours. As a result, our "dark blue" tag no longer existed, so all of our tags were using the default colours.
- Changed tag colour match changes.

:zap: Changed GetSectionSubmissionStatuses to return List

- Improves performance by not having to call `.ToList` on an object that is already a List

* :zap:: Make recommendations + category views async

* fix: ignore capitalisation

* fix: Web unit tests

* fix: Application tests

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: change test tag name

* refactor: add debug paths

* refactor: remove debug code

* refactor: change Title to string, link SubtopicRecommendation to subtopic

* Feat/accordion view step by step (#528)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* WIP - accordion view component

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype

* feat: Accordion view component added.

* feat: Accordion view component added.

* WIP

* WIP - step by step accordion component

* feat: basic step by step accordion component view

* resolve merge conflict

* Updated JS + CSS files

* feat: Step by step accordion view component added.

* Linted Code in Dfe.PlanTech.Domain/

---------

Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔨 Workflow + SQL script to clear user data from DB (#531)

* fix: add file extension

* feat: Initial script to clear DB

* fix: correct ordering, add signin table, remove *

* chore: move sql script

Otherwise it would run on every environment when deployed and clear the data... Whoops.

* cicd: Add workflow

* feat: disallow production

* TESTING: check inputs works.

* UNDO TEST CHANGES

* fix(?): remove init from BeforeContent

- This simply added the class `js-enabled` to the Body element. This seemed to already be covered by the `initAll()` functionality from the govuk-frontend.js file

* fix: remove step by step navigation js from layout (#533)

* chore: Add GovUK body class script in (#534)

Removed this yesterday in an erroneous attempt to fix the E2E tests. It's necessary for the GOV UK front-end initialisation script though so I've added back in.

* Feat/CodeCleanup (#524)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: Fix SQL script to clear DB (#536)

- For some reason the 'Go' commands weren't working from the workflow (although worked directly on DB). Removed.
- Tweaked CI/CD pipeline a bit to ensure safety

* docs(workflows): 📝 Add workflow changes to docs (#537)

* 📝(workflows) Add new workflows to documentation

- Add information on the `create-tag-release` workflow
- Add information on the `clear-user-data-from-db` workflow
- Moves the information about the `terraform-pr-check` workflow lower down in the document so that it is in alphabetical order

* 📝(workflows) Add TOC

GitHub should automatically have one available but you have to toggle it and this will be immediately visible.

* chore: Packages Update (#540)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

* Package updates

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: remove text match check (#542)

* fix(197631): 🐛 Fix content ordering on page (#541)

* feat: add error catching

* feat: add join table properties

* chore: remove debug lines

* chore: formatting

* feat: add order pagecontent

* feat: order contents

* refactor: cleanup ordering

* tests: Check for order

* tests: Update unit tests

* tests: Update unit tests

* chore: rename to be more descriptive

* Trigger tf doc update (#544)

* Trigger tf doc update

* terraform-docs: automated action

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: 💄 css stylings (#546)

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file (#547)

* fix: 💄 css stylings

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file

* feat: Add order column to PageContents (#549)

* cicd: don't lint if dir not had changes

* feat: add order columnt ot able

* fix: remove incorrect changes

* fix: no longer duplicate content (#550)

* fix: no longer duplicate content

Code was basically doing a full outer join, instead of a left join, resulting in content being duplicated multiple times.

* fix: take latest pagecontent if applicable

* fix: remove old css file

---------

Co-authored-by: jimwashbrook <131891854+jimwashbrook@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>
Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>
jimwashbrook added a commit that referenced this pull request Mar 19, 2024
* fix(recommendations): 🩹 Remove concrete references from recommendations interfaces

* feat(recommendations): 🗃️ Create initial DB models for recommendations

* feat(recommendations): 🗃️ Schema for recommendation chunks

* feat(recommendations): 🗃️ Recommendation intro schema

* feat(recommendations): 🗃️ Recommendation section schema

* feat(recommendations): 🗃️ Subtopic recommendations schema

* feat(recommendations): 🗃️ Add models to Db Context

- Need to clean this up a bit

* fix: remove go statements, fix copy and paste errors

* fix: missing fields

* fix: undo rename

* refactor(recommendations):
♻️ Move most of configurations to own files

* Linted Code in Dfe.PlanTech.Infrastructure.Data/

* Merge: development into main (#551)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

* tests: Initial programatic E2E tests work (#493)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: add missing comma

* fix: file names, null data

* fix: add relative path

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* tests: Add category and sections to programatic tests (#494)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* fix: remove file

* feaT: Process sections and categories on /self-assessment page

* fix: skip test due to missing data

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* tests: Refactor existing work on dynamic E2E tests (#496)

* feat: Hotfixes (#492)

* draft: docs: Caching documentation (#460)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: handle textBodyDB entity being empty - possible fix

* Linted Code in Dfe.PlanTech.Domain/

* ignore mapping of rich text id

* fix: Check answers page title (#487)

* fix: check answers page title

* fix: remove line

* Linted Code in Dfe.PlanTech.Web/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Add caching docs (#486)

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* terraform-docs: automated action

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: initial documentation templates

* docs: add other headers

* docs: overview of readpage

* docs: add db schema

* docs: more caching process documentation

* docs: Update CMS schema diagram

* docs: Add dbdiagram code for schema

* docs: Finish Contentful caching process doc

* docs: wip templates for adrs

* docs: draft highlevel mapping info

* docs: pad out adrs

* docs: add caching adr

* docs: Expand contentful caching process

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* feat: Support preview mode in Content db (#489)

* wip

* feat: process options

* feat: support preview in cmsdbcontext

* tests: tests for save + autosave

* feat: add contentfuloptions to web proj

* fix: add default usepreview

* fix: correctly get ContentfulOptions in dbcontext

* chore: remove unneeded param, add docs

* chore: refactor ignore message condition

* fix: Azure Function Tests (#490)

* fix: Add parameterless constructor again to fix tests

* chore: code cleanup recommendations

* fix: Remove this.getservice as causing errors

* fix: service config issue

* refactor: use guard statement for cleaner code

* refactor: create only adds contentcomponent

* refactor: revert changes and skip create event

* refactor: only save or auto_save when a new entity has all its required fields

* test: update tests

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* wip: validating pages dynamically

* wip: validate textbodies

* wip

* wip: move validations to separate files

* feat: validate paragraphs

* feat: validate table

* feat: use class, add comments

* chore: rearrange files

* chore: add docs

* chore: delete moved files

* fix: missing comma

* refactor: cleanup duplicated code.

* merge development

* chore: delete old dupe files

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Iain STANGER <Iain.STANGER@EDUCATION.GOV.UK>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>

* W.I.P

* fix: checkout repo

* refactor: remove superseded workflow

* refactor: add relevant triggers to paths and run some in parallel

* refactor: concurrency groups, pass artifact name as variable

* refactor: concurrency group naming

* chore: remove debug code

* tests: Navigate through every question in a sub-topic using Contentful data (#499)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* tests: E2E tests for every possible recommendation page (#500)

* feat: add warning validator

* chore: add missing fields

* feat: Test every question page for every sub-topic

- Test question
- Test answers
- Test check answers matches
- Uses path(s) that navigates through each question in a sub-topic

* chore: add skip back

* fix: correct name variable

* feat: validate every recommendation for every maturity

* feat: validate recommendation pages

* chore: revert testing things

* refactor: delete unused workflow

* chore: update various versions in workflows

* chore: update various versions in custom actions

* tests: Last E2E component tests (#501)

* fix: Test interstitial page content + replace all whitespaces

* chore: remove empty line

* tests: validate warning component + button with entry reference

* chore: remove log command

* feat: inset text validator + slight refactor

* feat: Test nav link

* docs: update components done

* terraform-docs: automated action

* refactor: see what happens if v2 is changed to v3 for terraform setup

* refactor: see what happens if v2 is changed to v3 for terraform setup

* chore: remove todo

* tests: Split up unit tests by page/section (#502)

* tests: Split up unit tests by page/section

* fix: unauthorised pages

* fix: only test unauthorised pages again

* chore: remove unused var

* chore: remove unused before

* chore: remove log command

* chore: remove log command

* Qa view spike (#504)

* test graphiz dependency install in actions

* test graphiz dependency install in actions

* image output upload

* image upload

* test

* correct location for generated images

* output artifact id

* output artifact id

* test building link to artifact

* retrieve data from sql server

* retrieve data from sql server

* list files

* Add visualisation script to loop through the data files to create viz for each section

* call the teams webhook

* typo

* typo

* test using AD connection string

* retest

* Use access token for DB connection

* use dev environment just for testing

* add required variables

* test building sql connection rather than from secret

* Add new question/answer visaulisation workflow

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* wip cleanup (#498)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* chore: upgrade missed version

* refactor: merge ShouldDropMessage and ShouldIgnoreMessage

* Format visualisations (#506)

* Add formatting to visualisations, removes cron schedule from workflow and add as job within matrix deploy

* add -y flag for any prompts

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>

* refactor: Log which required properties are null in such an event

* chore: remove block comment

* fix: RichText retrieval bug (#507)

- Fixes types in `@RichTextIds` and `idColumn`
- Optimised the querying of the fetching of the `ContentComponentIds` and the `RichTextIds`

* refactor: Check validity of component always

* refactor: remove unused parameter

* refactor: remove unused parameter

* refactor: update dotnet-coverage to latest

* refactor: rollback dotnet-coverage to last known good version

* fix: rollback dotnet-coverage for sonarcloud

* test: update tests

* Feat/cleanup (#512)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* refactor: change valid component logic

* chore: move node unit tests package files to actual folder (#515)

* chore: move node unit tests package files to actual folder

- These were originally in root dir incase we had tests spread out across multiple projects. Which we don't so this just cleans it up.

* fix: test path

Swear I already changed this but apparently not.

* chore: Update all nuget packages. (#510)

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* feat: Convert RichTextContents function into a view (#509)

* feat: refactor function RichTextContents by page into view

* fix: correct type

* Linted Code in Dfe.PlanTech.Domain/

* chore: linting + remove unnecessary query

* chore: Update all nuget packages. Remove moq

* fix: replace automapper package

* fix: remove broken sql

* chore: small refactor + consistency changes

- Removes unncessary toplevel `SELECT *` statement
- Made every table name + column name in [] to ensure consistency
- Added actual columns to the `SELECT` query for the function

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Feat/cleanup (#517)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* Linted Code in Dfe.PlanTech.Infrastructure.Contentful/

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor: W.I.P add semantic versioning

* refactor: global install semantic-release

* refactor: install dependencies

* refactor: install dependencies with versions

* feat: use semantic versioning

* refactor: run it on push test

* refactor: tag change

* refactor: create contentful entity classes

* Feat/cleanup (#518)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* refactor: change string to Title component

* fix(sql): 🐛 Fixes a bug where Warning components weren't display text (#521)

* fix(sql): Fixes a bug where Warning components weren't display text

* fix: missing marks and data

* refactor: change Maturity enum to string

* refactor: rename variables to match cms

* refactor: add Title field to RecommendationChunk

* refactor: change title component to header component

* feat: Update Gov UK Packages (#523)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype (#525)

**:sparkles: Features**:

- Add the `step by step navigation` JS and CSS from the `@govuk-prototype-kit/step-by-step` package

**:adhesive_bandage: Fixes**:

- Updates the `Warning component` tag helper, to use the new class to hide the warning text.

* refactor: update interfaces

* test: add temp dummy tests

* refactor: use generic type in interface

* fix: :green_heart: Semver release (#527)

* fix: Remove exec commands

* ⚡: Update Category + Recommendation View Components (#529)

* 💄: Update Tag colour to match changes

- In [version 5](alphagov/govuk-design-system-backlog#62 (comment)) of the GDS front-end packages, they have changed the tag colours. As a result, our "dark blue" tag no longer existed, so all of our tags were using the default colours.
- Changed tag colour match changes.

:zap: Changed GetSectionSubmissionStatuses to return List

- Improves performance by not having to call `.ToList` on an object that is already a List

* :zap:: Make recommendations + category views async

* fix: ignore capitalisation

* fix: Web unit tests

* fix: Application tests

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: debug test comment removal

* refactor: change test tag name

* refactor: add debug paths

* refactor: remove debug code

* refactor: change Title to string, link SubtopicRecommendation to subtopic

* Feat/accordion view step by step (#528)

* feat: Update Gov UK Packages

- Updates govuk-frontend
- Updates DFE alpha
- Adds relevant JS to _Layout.cshtml

* WIP - accordion view component

* fix: unit tests to match govuk changes

* fix: use commands

* fix: button styling, compile scss

* feat: add step-by-step navigation from govuk prototype

* feat: Accordion view component added.

* feat: Accordion view component added.

* WIP

* WIP - step by step accordion component

* feat: basic step by step accordion component view

* resolve merge conflict

* Updated JS + CSS files

* feat: Step by step accordion view component added.

* Linted Code in Dfe.PlanTech.Domain/

---------

Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* 🔨 Workflow + SQL script to clear user data from DB (#531)

* fix: add file extension

* feat: Initial script to clear DB

* fix: correct ordering, add signin table, remove *

* chore: move sql script

Otherwise it would run on every environment when deployed and clear the data... Whoops.

* cicd: Add workflow

* feat: disallow production

* TESTING: check inputs works.

* UNDO TEST CHANGES

* fix(?): remove init from BeforeContent

- This simply added the class `js-enabled` to the Body element. This seemed to already be covered by the `initAll()` functionality from the govuk-frontend.js file

* fix: remove step by step navigation js from layout (#533)

* chore: Add GovUK body class script in (#534)

Removed this yesterday in an erroneous attempt to fix the E2E tests. It's necessary for the GOV UK front-end initialisation script though so I've added back in.

* Feat/CodeCleanup (#524)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: Fix SQL script to clear DB (#536)

- For some reason the 'Go' commands weren't working from the workflow (although worked directly on DB). Removed.
- Tweaked CI/CD pipeline a bit to ensure safety

* docs(workflows): 📝 Add workflow changes to docs (#537)

* 📝(workflows) Add new workflows to documentation

- Add information on the `create-tag-release` workflow
- Add information on the `clear-user-data-from-db` workflow
- Moves the information about the `terraform-pr-check` workflow lower down in the document so that it is in alphabetical order

* 📝(workflows) Add TOC

GitHub should automatically have one available but you have to toggle it and this will be immediately visible.

* chore: Packages Update (#540)

* wip cleanup

* cleanup

* cleanup

* test for assertion

* Architecture Diagram Update

* update

* added test to update coverage on GetEntitiesException

* updated tests and protected constructor for serializable class

* more cleanup for v1.05

* more cleanup for SonarCloud

* fix

* Linted Code in Dfe.PlanTech.Application/

* exception handling

* linting and formatting

* Package updates

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: remove text match check (#542)

* fix(197631): 🐛 Fix content ordering on page (#541)

* feat: add error catching

* feat: add join table properties

* chore: remove debug lines

* chore: formatting

* feat: add order pagecontent

* feat: order contents

* refactor: cleanup ordering

* tests: Check for order

* tests: Update unit tests

* tests: Update unit tests

* chore: rename to be more descriptive

* Trigger tf doc update (#544)

* Trigger tf doc update

* terraform-docs: automated action

---------

Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* fix: 💄 css stylings (#546)

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file (#547)

* fix: 💄 css stylings

Fixes 197437
197630

Doesn't fix 197620 intentionally as incorrect.

* fix: Remove outdated copying of a specific file

* feat: Add order column to PageContents (#549)

* cicd: don't lint if dir not had changes

* feat: add order columnt ot able

* fix: remove incorrect changes

* fix: no longer duplicate content (#550)

* fix: no longer duplicate content

Code was basically doing a full outer join, instead of a left join, resulting in content being duplicated multiple times.

* fix: take latest pagecontent if applicable

* fix: remove old css file

---------

Co-authored-by: jimwashbrook <131891854+jimwashbrook@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>
Co-authored-by: Jim Washbrook <jim.washbrook@and.digital>

* feat: Read Subtopic Recommendation from DB

* chore: make async

* tests: Initialise Data proj unit tests

* chore: ignore entitytype configs

* fix: revert accidental changes

* feat: add mapping profiles

* fix: return null, don't throw error

* feat: initial db query tests setup

* tests: Initial getsubtopicrec...fromdb tests

* tests: null test

* test: logs message on exception

* feat: Parent recommendation query

* tests: All(?) tests done for GetSubtopicRecommendationQuery

* fix: add page content entity type configuration back

* fix: merge issues

* fix: capitalisation issue

* fix: efcore issues

* feat: majority of the mapping done

* feat: complete (?) recommendations db query

**TODO**:
- [ ] Test once the slug for recommendation intro is in
- [ ] Unit tests

* chore: remove empty line

* Add slug to DB entity

* tests: Add .Data project unit test project

* feat: finish recommendations repostiroy

* chore: remove unused packages

* chore: fix test

* feat: add recommendations view function

* feat: add missing methods, refactory combined query

* fix: use correct repository for contentful

* fix: Add sectionslug back in

- I removed because Intellisense said there were no references to it, because it's awful with .cshtml files. It is being used.

* refactor: improve querying from contentful

* chore: formatting

* fix: query bug, add regions to dbcontecxt

* fix: retrieve everything bar content

* feat: add view to get richtext contents with subrecid

* fix: typoe

* fix: use correct view

* fix: retrieve almost all content

* chore: pass cancellation token

* fix: update recommendationsviewcomponent unit tests

* wip of fixing more tests

* fix: unit test

* tests: add tests for newer function + missing methods

* chore: fix capitalisation to match changes

* chore: fix most code smells

* fix: Correct DB query
Was comparing/querying wrong thing...

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Iain-Stanger <132473051+Iain-Stanger@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: uahussain12 <“umar.hussain@and.digital”>
Co-authored-by: uahussain12 <uahussain12@users.noreply.github.com>
Co-authored-by: Zac King <zac.king@and.digital>
Co-authored-by: Zac <119302767+Zac-AND-Digital@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants