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

Adding FCA UK Chapter 15 Operational resilience framework #1464

Open
wants to merge 5,431 commits into
base: main
Choose a base branch
from

Conversation

jledoze
Copy link

@jledoze jledoze commented Feb 3, 2025

Summary by CodeRabbit

  • New Features
    • Introduced a comprehensive operational resilience framework for UK regulated firms featuring a detailed scoring system that rates resilience from 1 (Initial) to 5 (Optimizing).
    • Provided clear guidelines on critical business services identification, impact tolerances, scenario testing, and structured compliance reviews to support robust risk management.
    • Added essential metadata for improved clarity and reference regarding operational resilience regulations.

nas-tabchiche and others added 30 commits December 23, 2024 17:46
New format is <branch>-<timestamp>-<artifact name>
Mohamed-Hacene and others added 14 commits January 30, 2025 11:39
* feat: check required libraries after domain creation

* feat: improve error handling

* chore: format
* Add a progress field on applied controls

* changed save model function & regionalize

* inverse colors and add a validator on the progress field model
* fix: diffentiate cell's tooltips using matrixName%

* fix: typo and code readability
* Increase limit_request_line param for gunicorn

Increase limit_request_line param for gunicorn, this allows some IDP (such as GoAuthentik) provider to work as the request line often goes beyond the default value of 4094.

* Update startup.sh

Forgot backslash...
…1451)

* put entityy mendatory with red star UI

* changed implementation
…faster (intuitem#1375)

* Improve the e2e-tests.sh script to make local functional tests faster

Minor correction

Minor adjustment

* Fix poetry 2.x compability

* Update the poetry version in the README requirements

* Handle filenames with spaces
* feat: begin to add possibility to draft risk acceptances

This is not finished yet, some little things remain to be done.

* dynamic translations

* fix: better ui + possibility to switch draft and submitted states

* fix: removed backend translations

* fix: add possibility to remove the defined approver

* fix(api): prevent non-approvers to reject/revoke/accept

* fix(UI): tooltip instead of text for approver missing

* fix: coderabbits reviews

---------

Co-authored-by: Mohamed-Hacene <[email protected]>
…#1456)

* starting point to rearange applied control form

* Cleaner look for Applied controls forms

* Improve audit creation form

* Adjust tests for applied control

* fixup

* fixup

* fixup
…up (intuitem#1391)

* Add word confirmation when deleting domain/import a backup

* New promptModal & fix modal boolean validation & fix flash errors

* ruff format

* added promptmodal for the supression of a domain and corrected useless action.ts delete hidden input on forms

* tolowercase yes to have m.yes = Yes instead of yes

* corrected tests

* changed tests and test-ids

* corrected tests

* correct tests

---------

Co-authored-by: Mohamed-Hacene <[email protected]>
Copy link
Contributor

coderabbitai bot commented Feb 3, 2025

Walkthrough

The YAML file now defines a comprehensive framework for FCA UK - Chapter 15A on operational resilience. It adds detailed metadata, a new framework object with a defined scoring system (ranging from 1 to 5), and several requirement nodes. These nodes outline criteria for identifying important business services, establishing impact tolerances, scenario testing, and supervisory review. The file serves as a structured regulatory guide for ensuring that firms meet resilience standards.

Changes

File(s) Change Summary
tools/.../fca-uk-ps21-3-chapter15-requirements.yaml - Metadata Added: URN, locale, ref_id, name, description, copyright, version, publication_date, provider, and packager.
- Framework Object: Introduced with its own URN, ref_id, name, description, min/max score, and detailed scoring criteria.
- Requirement Nodes: New nodes detailing operational resilience obligations such as impact tolerances, scenario testing, and supervisory review.

Poem

I'm a rabbit, hopping with delight,
New metadata and nodes shining bright.
A framework of resilience takes a leap,
Scoring and testing, promises to keep.
With whiskers twitching in regulatory cheer,
I celebrate these changes with a happy ear!


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

github-actions bot commented Feb 3, 2025

CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (4)
tools/fca-uk-sysc15a/fca-uk-ps21-3-chapter15-requirements.yaml (4)

60-69: Implementation Groups Definition

The implementation groups (Basic, Intermediate, Advanced) are defined with their ref_ids and names. However, the descriptions are currently set to null. If additional context or guidance is available, consider providing a brief description for each group to help users understand the distinctions.


70-98: Application Requirement Nodes Review

The "Application" requirement nodes establish the applicability of the framework to different firm types and scenarios. While the hierarchical structure with parent_urn references is correctly implemented, the repeated use of the name "Application" across child nodes might benefit from additional qualifiers to improve clarity.


211-340: Important Business Services & Impact Tolerance Requirements

This section outlines the requirements for identifying important business services (nodes 15A.2.1 to 15A.2.4) and establishing impact tolerances (nodes 15A.2.5 to 15A.2.10). The hierarchical structure is clear, and the descriptions are detailed. Consider whether the recurring labels "Important business identification" and "Impact tolerance" could be refined to differentiate each specific requirement further.


387-406: Strategies, Processes and Systems Requirements

The requirement nodes under "Strategies, processes and systems" clearly mandate that firms maintain robust internal strategies, processes, and systems. The descriptions effectively convey the need for comprehensiveness and proportionality. It might be useful to include examples or cross-references to other regulatory guidelines if applicable.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 385366c and 78c7dea.

⛔ Files ignored due to path filters (1)
  • tools/fca-uk-sysc15a/FCA-UK-PS21-3-Chapter15-Requirements.xlsx is excluded by !**/*.xlsx
📒 Files selected for processing (1)
  • tools/fca-uk-sysc15a/fca-uk-ps21-3-chapter15-requirements.yaml (1 hunks)
🔇 Additional comments (9)
tools/fca-uk-sysc15a/fca-uk-ps21-3-chapter15-requirements.yaml (9)

1-10: Metadata Block Verification

The metadata section is clearly defined with all the essential fields (URN, locale, ref_id, name, description, copyright, version, publication_date, provider, and packager). Ensure that these values remain consistent with internal naming conventions and regulatory standards.


11-19: Framework Object Structure

The framework object under the "objects:" key is well organized. It correctly specifies the URN, ref_id, name, description, and scoring boundaries (min_score and max_score) along with a detailed scores_definition. Please confirm that the score range (1–5) aligns with the intended assessment criteria.


20-59: Scoring Definitions Consistency and Formatting

The scoring definitions provide comprehensive criteria for each score level from 1 (Initial) to 5 (Optimizing). One minor nitpick: the use of a comma in "0,5%" for the lowest percentage in score 5 might be confusing in an English locale where a dot is typically used (i.e. "0.5%"). Verify whether this format is intentional or should be adjusted for clarity.


407-446: Mapping Requirements Evaluation

The Mapping section is well articulated. It requires firms to document the essential components (people, processes, technology, facilities, and information) to support each important business service. The additional guidance for third-party reliance is clear. Ensure that the specified review frequency (e.g. annual review) aligns with internal policies and regulatory expectations.


447-572: Scenario Testing and Lessons Learned Requirements

This segment covers the entire scenario testing process—from maintaining a testing plan and executing various testing methodologies to conducting lessons learned exercises. The inclusion of considerations for third-party dependencies is particularly strong. Just verify that the balance between rigorous testing requirements and operational feasibility is maintained.


572-613: Self-Assessment Documentation Requirements

The self-assessment and lessons learned documentation requirements are comprehensive. They clearly articulate what records must be maintained and the retention period (at least 6 years). Confirm that these documentation practices align with the firm’s internal record-keeping policies and regulatory obligations.


613-627: Governance Requirement

The governance node mandates that the firm’s governing body approves and reviews the documentation established in the previous section. This is a sound control measure. It would be beneficial to ensure that internal procedures for these governance reviews are well defined.


628-663: Communications Strategy Requirements

The communications requirements emphasize the need for both internal and external communication strategies during operational disruptions. The criteria for timely and effective information dissemination are clear. It may be worth verifying that the proposed communication methods are compatible with the firm’s existing channels.


664-702: Supervisory Review and Feedback Requirements

The supervisory review and feedback section outlines the process through which the FCA may provide individual guidance and require corrective actions. The iterative nature of feedback between the FCA and the firm is well captured. Ensure that the language provides sufficient flexibility for cases where disputes arise, and that follow-up mechanisms are clear.

@jledoze
Copy link
Author

jledoze commented Feb 3, 2025

I have read the CLA Document and I hereby sign the CLA

@eric-intuitem
Copy link
Collaborator

eric-intuitem commented Feb 4, 2025

1/ A license agreement must be obtained: https://www.fca.org.uk/handbook-licence-agreement.
2/ The IG tab is not used. Either it should be removed, or preferably it should be used to distinguish "Rules" from "Guidance". R and G should be visible also in the title.
3/ Is the score system part of the standard and/or relevant?
4/ The link to the standard shall be given in description (https://www.handbook.fca.org.uk/handbook/SYSC/15A/)

@jledoze
Copy link
Author

jledoze commented Feb 12, 2025

Hello,
1/ About the licence agreement, could you ask for it? If it is added, it would be in your product. So, it makes more sens for you to ask for it no?
2/ Thank you for the recommandation. I added it. About the R and G in the title, do you mean it should appear in the "ref_id"?
3/ The score is not a part of the standard. I added it because CISO-Assistant allows to add it. I believe this is a nice to have.
4/ Done

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
tools/fca-uk-sysc15a/fca-uk-ps21-3-chapter15-requirements.yaml (1)

186-192: Replace special characters with standard Unicode.

Several requirement nodes contain special characters (■) that might cause rendering issues. Consider replacing these with standard Unicode characters or removing them if they're not necessary.

Example occurrences:

  • Line 186: "Notwithstanding ■ SYSC 15A.1.7R"
  • Line 219: "compliance with ■ SYSC 15A.2.1R"
  • Line 277: "compliance with ■ SYSC 15A.2.5R"
    And others...

Also applies to: 219-222, 277-281, 333-345, 423-424, 430-437, 560-562

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 78c7dea and 200ccec.

⛔ Files ignored due to path filters (1)
  • tools/fca-uk-sysc15a/FCA-UK-PS21-3-Chapter15-Requirements.xlsx is excluded by !**/*.xlsx
📒 Files selected for processing (1)
  • tools/fca-uk-sysc15a/fca-uk-ps21-3-chapter15-requirements.yaml (1 hunks)
🔇 Additional comments (3)
tools/fca-uk-sysc15a/fca-uk-ps21-3-chapter15-requirements.yaml (3)

9-9: Verify the publication date.

The publication date is set to February 12, 2025, which is in the future. Please confirm if this is intentional or if it should be adjusted to the actual publication date.


19-61: LGTM! Well-structured scoring system.

The scoring system is well-implemented with:

  • Clear progression from Initial (1) to Optimizing (5)
  • Measurable criteria with specific percentages
  • Comprehensive descriptions covering process documentation, implementation, and exceptions

62-695: LGTM! Well-organized requirement nodes.

The requirement nodes effectively capture the regulatory framework with:

  • Clear hierarchical structure using parent-child relationships
  • Consistent use of URNs and reference IDs
  • Appropriate flagging of assessable requirements
  • Comprehensive descriptions with cross-references

@eric-intuitem
Copy link
Collaborator

License request sent.

ab-smith pushed a commit that referenced this pull request Feb 26, 2025
ab-smith added a commit that referenced this pull request Feb 26, 2025
* Creating file for storing CLA Signatures

* @eric-intuitem has signed the CLA in #34

* @nas-tabchiche has signed the CLA in #36

* @Mohamed-Hacene has signed the CLA in #37

* @Alexdev8 has signed the CLA in #49

* @monsieurswag has signed the CLA in #62

* @felixhaeberle has signed the CLA in #173

* @ab-smith has signed the CLA in #184

* @eltociear has signed the CLA in #269

* @protocolpaladin has signed the CLA in #350

* @krismas has signed the CLA in #379

* @tovam has signed the CLA in #463

* @ImanABS has signed the CLA in #495

* @AndrzejRPiotrowski has signed the CLA in #552

* @nka11 has signed the CLA in #602

* @PhilBall-DEFEND has signed the CLA in #608

* @Th3ju has signed the CLA in #643

* @fdicarlo has signed the CLA in #672

* @Coffee-007 has signed the CLA in #745

* @vincenttisseront has signed the CLA in #786

* @melinoix has signed the CLA in #847

* @Axxiar has signed the CLA in #865

* @AbdouSou has signed the CLA in #1006

* @quentinbdno has signed the CLA in #1013

* @atomikiss has signed the CLA in #1030

* @fastlorenzo has signed the CLA in #1107

* @QuiverX41 has signed the CLA in #1142

* @Nathanael-Mtd has signed the CLA in #1216

* @thidalgosalvador has signed the CLA in #1290

* @za has signed the CLA in #1305

* @rzivny has signed the CLA in #1324

* @h-4-t has signed the CLA in #1327

* @gbyx3 has signed the CLA in #1343

* @Patrick-PDV has signed the CLA in #1431

* @AisukoHakumei has signed the CLA in #1454

* @jledoze has signed the CLA in #1464

* @Pioupuch has signed the CLA in #1482

* @nparfait has signed the CLA in #1484

* @vnzgnn has signed the CLA in #1526

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@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.