From b71744869d513df6f6738ae881b3df6b1a59bb1b Mon Sep 17 00:00:00 2001 From: Patrick Stewart Date: Sat, 12 Oct 2024 01:24:49 -0700 Subject: [PATCH] Add: adding/updating common project files --- .editorconfig | 0 .gitattributes | 0 .toolversion | 0 AUTHORS.md | 40 ++++++-- CHANGELOG.md | 209 ------------------------------------------ CODE_OF_CONDUCT.md | 39 ++++++++ CONTRIBUTING.md | 88 +++++++++++++----- Makefile | 0 SECURITY.md | 49 ++++++++++ analysis_options.yaml | 30 ++++++ s | 0 11 files changed, 217 insertions(+), 238 deletions(-) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .toolversion create mode 100644 CODE_OF_CONDUCT.md create mode 100644 Makefile create mode 100644 SECURITY.md create mode 100644 analysis_options.yaml create mode 100644 s diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..e69de29b diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..e69de29b diff --git a/.toolversion b/.toolversion new file mode 100644 index 00000000..e69de29b diff --git a/AUTHORS.md b/AUTHORS.md index ac95ab58..ea8031ce 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -1,12 +1,36 @@ -Primary Authors -=============== +# Protevus Platform Authors -* __[Thomas Hii](dukefirehawk.apps@gmail.com)__ +## Core Team - Thomas is the current maintainer of the code base. He has refactored and migrated the - code base to support NNBD. +- Patrick Stewart (Project Lead) +- Vacant Spot (Lead Developer) +- Vacant Spot (Developer) -* __[Tobe O](thosakwe@gmail.com)__ +## AI Team +- Cody (AI Coding Assistant) +- Claude (AI Coding Assistant) +- Code Copilot (AI Coding Assistant) +- Keymate (AI Coding Assistant) + +## Contributors + +- Alice Williams + - Implemented the ORM module + - Contributed to the database abstraction layer + +- Charlie Brown + - Implemented the authentication and authorization system + - Contributed to the event broadcasting and queueing system + +- Eve Green + - Improved the routing system + - Contributed to the middleware implementation + +- Michael Davis + - Worked on the caching and performance optimization features + - Contributed to the documentation + +# Additional contributors (in alphabetical order) + +- Vacant Spot - Tobe has written much of the original code prior to NNBD migration. He has moved on and - is no longer involved with the project. diff --git a/CHANGELOG.md b/CHANGELOG.md index ee262a5a..e69de29b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,209 +0,0 @@ -# Change Log - -## 8.0.0 - -* Require Dart >= 3.0 -* Updated: angel3_http_exception -* Updated: angel3_route -* Updated: angel3_model -* Updated: angel3_container -* Updated: angel3_container_generator -* Updated: angel3_mock_request -* Updated: angel3_framework -* Updated: angel3_auth -* Updated: angel3_configuration -* Updated: angel3_validate -* Updated: angel3_client -* Updated: angel3_websocket -* Updated: angel3_test -* Updated: jael3 -* Updated: jael3_preprocessor -* Updated: jael3_language_server -* Updated: angel3_jael -* Updated: jael3_web -* Updated: angel3_production -* Updated: angel3_hot -* Updated: angel3_static -* Updated: angel3_serialize -* Updated: angel3_serialize_generator -* Updated: angel3_orm -* Updated: angel3_orm_generator -* Updated: angel3_migration -* Updated: angel3_migration_runner -* Updated: angel3_orm_postgresql -* Updated: angel3_orm_mysql -* Updated: angel3_orm_service -* Updated: angel3_orm_test -* Updated: angel3_cache -* Updated: angel3_cors -* Updated: angel3_mustache -* Updated: angel3_proxy -* Updated: angel3_redis -* Updated: angel3_jinja -* Updated: angel3_security -* Updated: angel3_user_agent -* Updated: angel3_seo -* Updated: angel3_sync -* Updated: angel3_sembast -* Updated: angel3_markdown -* Updated: angel3_auth_oauth2 -* Updated: angel3_oauth2 (5 failed test cases) -* Updated: angel3_auth_twitter (issue: oauth1 don't support http 1.0.0) -* Updated: angel3_mongo (issue: mongo_dart don't support http 1.0.0) -* Updated: angel3_shelf (2 failed test cases) - -## 7.0.0 - -* Require Dart >= 2.17 - -## 6.0.0 - -* Require Dart >= 2.16 -* Added ORM MySQL - -## 5.0.0 - -* Skipped version - -## 4.1.x - -* Refactored the framework internal to use [Belatuk Common Utilities]() -* Updated to use `lints` linter -* Updated [website]() -* Updated [examples]() -* Fixed ORM code generator -* Fixed Serializer code generator -* Fixed graphQL code generator -* Fixed CLI -* Fixed failed test cases - -## 4.0.0 (NNBD) - -* Published all packages with `angel3_` prefix -* Changed Dart SDK requirements for all packages to ">=2.12.0 <3.0.0" to support NNBD. -* Migrated pretty_logging to 3.0.0 (0/0 tests passed) -* Migrated angel_http_exception to 3.0.0 (0/0 tests passed) -* Moved angel_cli to [CLI Repository]() (Not migrated yet) -* Added code_buffer and migrated to 2.0.0 (16/16 tests passed) -* Added combinator and migrated to 2.0.0 (16/16 tests passed) -* Migrated angel_route to 5.0.0 (35/35 tests passed) -* Migrated angel_model to 3.0.0 (0/0 tests passed) -* Migrated angel_container to 3.0.0 (55/55 tests passed) -* Added merge_map and migrated to 2.0.0 (6/6 tests passed) -* Added mock_request and migrated to 2.0.0 (5/5 tests) -* Migrated angel_framework to 4.0.0 (149/150 tests passed) -* Migrated angel_auth to 4.0.0 (31/31 tests passed) -* Migrated angel_configuration to 4.0.0 (8/8 testspassed) -* Migrated angel_validate to 4.0.0 (7/7 tests passed) -* Migrated json_god to 4.0.0 (13/13 tests passed) -* Migrated angel_client to 4.0.0 (13/13 tests passed) -* Migrated angel_websocket to 4.0.0 (3/3 tests passed) -* Migrated angel_test to 4.0.0 (1/1 test passed) -* Added symbol_table and migrated to 2.0.0 (16/16 tests passed) -* Migrated jael to 4.0.0 (20/20 tests passed) -* Migrated jael_preprocessor to 3.0.0 (5/5 tests passed) -* Migrated angel_jael to 4.0.0 (1/1 test passed) -* Migrated pub_sub to 4.0.0 (16/16 tests passed) -* Migrated production to 3.0.0 (0/0 tests passed) -* Added html_builder and migrated to 2.0.0 (1/1 tests passed) -* Migrated hot to 4.0.0 (0/0 tests passed) -* Added range_header and migrated to 3.0.0 (12/12 tests passed) -* Migrated angel_static to 4.0.0 (12/12 test passed) -* Created basic-sdk-2.12.x_nnbd template (1/1 test passed) <= Milestone 1 -* Migrated angel_serialize to 4.0.0 (0/0 test passed) -* Migrated angel_serialize_generator to 4.0.0 (33/33 tests passed) -* Migrated angel_orm to 3.0.0 (0/0 tests passed) -* Migrated angel_migration to 3.0.0 (0/0 tests passed) -* Added inflection2 and migrated to 1.0.0 (28/32 tests passed) -* Migrated angel_orm_generator to 4.0.0 (0/0 tests passed) -* Migrated angel_migration_runner to 3.0.0 (0/0 tests passed) -* Migrated angel_orm_test to 3.0.0 (0/0 tests passed) -* Migrated angel_orm_postgres to 3.0.0 (51/54 tests passed) -* Create orm-sdk-2.12.x boilerplate (in progress) <= Milestone 2 -* Migrated angel_auth_oauth2 to 4.0.0 (0/0 tests passed) -* Migrated angel_auth_cache to 4.0.0 (7/7 tests passed) -* Migrated angel_auth_cors to 4.0.0 (15/15 tests passed) -* Migrated angel_oauth2 to 4.0.0 (17/25 tests passed) -* Migrated angel_proxy to 4.0.0 (6/7 tests passed) -* Migrated angel_file_service to 4.0.0 (6/6 tests passed) -* Migrated graphql_parser to 2.0.0 (55/55 tests passed) -* Migrated graphql_schema to 2.0.0 (34/35 tests passed) -* Migrated graphql_server to 2.0.0 (9/10 tests passed) -* Migrated graphql_generator to 2.0.0 (0/0 tests passed) -* Migrated data_loader to 2.0.0 (7/7 tests passed) -* Migrated angel_graphql to 2.0.0 (0/0 tests passed) -* Migrated angel_mongo to 3.0.0 (0/0 tests passed) -* Migrated angel_orm_mysql to 2.0.0 (0/0 tests passed) -* Migrated angel_orm_service to 2.0.0 (0/0 tests passed) -* Migrated body_parser to 2.0.0 (11/11 tests passed) -* Migrated angel_markdown to 3.0.0 (0/0 tests passed) -* Migrated angel_jinja to 2.0.0 (0/0 tests passed) -* Migrated angel_html to 3.0.0 (1/3 tests passed) -* Migrated angel_mustache to 2.0.0 (3/3 tests passed) -* Migrated angel_paginate to 3.0.0 (18/18 tests passed) -* Migrated angel_poll to 2.0.0 (0/5 tests passed) -* Migrated angel_redis to 2.0.0 (0/8 tests passed) -* Migrated angel_seeder to 2.0.0 (0/0 tests passed) -* Migrated angel_relations to 2.0.0 (0/0 tests passed) -* Migrated angel_rethink to 2.0.0 (0/0 tests passed) -* Migrated angel_security to 2.0.0 (0/1 tests passed) -* Migrated angel_sembast to 2.0.0 (10/10 tests passed) -* Migrated angel_sync to 3.0.0 (0/1 tests passed) -* Migrated angel_typed_service to 3.0.0 (4/4 tests passed) -* Migrated angel_shelf to 2.0.0 (0/1 tests passed) -* Migrated user_agent to 2.0.0 (0/0 tests passed) -* Migrated angel_user_agent to 2.0.0 (0/0 tests passed) - -## 3.0.0 (Non NNBD) - -* Changed Dart SDK requirements for all packages to ">=2.10.0 <3.0.0" -* Updated pretty_logging to 2.0.0 (0/0 tests passed) -* Updated angel_http_exception to 2.0.0 (0/0 tests passed) -* Updated angel_cli to 3.0.0. (Rename not working) -* Updated angel_route to 4.0.0 (35/35 tests passed) -* Updated angel_model to 2.0.0 (0/0 tests passed) -* Updated angel_container to 2.0.0 (55/55 tests passed) -* Updated angel_framework to 3.0.0 (150/151 tests passed) -* Updated angel_auth to 3.0.0 (28/32 tests passed) -* Updated angel_configuration to 3.0.0 (6/8 tests passed) -* Updated angel_validate to 3.0.0 (7/7 tests passed) -* Added and updated json_god to 3.0.0 (7/7 tests passed) -* Updated angel_client to 3.0.0 (10/13 tests passed) -* Updated angel_websocket to 3.0.0 (3/3 tests passed) -* Updated jael to 3.0.0 (20/20 tests passed) -* Updated jael_preprocessor to 3.0.0 (5/5 tests passed) -* Updated test to 3.0.0 (1/1 tests passed) -* Updated angel_jael to 3.0.0 (1/1 tests passed, Issue with 2 dependencies) -* Added pub_sub and updated to 3.0.0 (16/16 tests passed) -* Updated production to 2.0.0 (0/0 tests passed) -* Updated hot to 3.0.0 (0/0 tests passed) -* Updated static to 3.0.0 (12/12 tests passed) -* Update basic-sdk-2.12.x boilerplate (1/1 tests passed) -* Updated angel_serialize to 3.0.0 (0/0 tests passed) -* Updated angel_serialize_generator to 3.0.0 (33/33 tests passed) -* Updated angel_orm to 3.0.0 (0/0 tests passed) -* Updated angel_migration to 3.0.0 (0/0 tests passed) -* Updated angel_orm_generator to 3.0.0 (0/0 tests passed, use a fork of postgres) -* Updated angel_migration_runner to 3.0.0 (0/0 tests passed) -* Updated angel_orm_test to 1.0.0 (0/0 tests passed) -* Updated angel_orm_postgres to 2.0.0 (52/54 tests passed) -* Update orm-sdk-2.12.x boilerplate -* Updated angel_auth_oauth2 to 3.0.0 (0/0 tests passed) -* Updated angel_auth_cache to 3.0.0 (0/7 tests passed) -* Updated angel_auth_cors to 3.0.0 (15/15 tests passed) -* Updated angel_oauth2 to 3.0.0 (17/25 tests passed) -* Updated angel_container_generator to 2.0.0 -* Updated angel_file_service to 3.0.0 -* Updated angel_eventsource to 2.0.0 (use a fork of eventsource) -* Updated angel_auth_twitter to 3.0.0 (use a fork of twitter and oauth) - -## 2.2.0 - -* Changed Dart SDK requirements for all packages to ">=2.10.0 <2.12.0" -* Upgraded 3rd party libraries to the latest version prior to dart 2.12 -* Fixed broken code due to 3rd party libraries update -* Revert packages/validate from version 3.0 to version 2.2 - -## 2.1.x and below - -* Refer to the orginal repo before the fork diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..45e7d699 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,39 @@ +# Protevus Platform Code of Conduct + +## Our Pledge + +We, as members, contributors, and leaders of the Protevus Platform community, pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our community include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or advances of any kind +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned with this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [insert email diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a54cac5b..17afe5cb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,25 +1,71 @@ +# Contributing to the Protevus Platform -# Contribution +Welcome to the Protevus Platform project! We appreciate your interest in contributing to our open-source application server platform. This document outlines the guidelines and best practices for contributing to the project. -Any help from the open-source community is always welcome and needed: +## Code of Conduct -1. Found an issue? - - Please [fill a bug report][tracker] with error message and steps to reproduce it. -2. Wish a feature? - - Open a feature request with use cases. -3. Are you using and liking the project? - - Create an article about your use case - - Do a post on your likes and dislikes - - Make a donation. -4. Are you a developer? - - Fix a bug and send a [pull request][pull_request] - - Implement a new feature - - Improve the Unit Tests - - Improve the [User Guide][doc] and send a [document pull request][doc_repo] -5. Have you already helped in any way? - - **Many thanks to the contributors and everybody that uses this project!** +By participating in this project, you are expected to uphold our [Code of Conduct](CODE_OF_CONDUCT.md). Please review it to understand the behavior standards expected of all contributors. -[tracker]: https://github.com/dart-backend/angel/issues -[pull_request]: https://github.com/dart-backend/angel/pulls -[doc]: https://angel3-docs.dukefirehawk.com -[doc_repo]: https://github.com/dart-backend/angel3-guide/pulls +## Ways to Contribute + +There are many ways to contribute to the Protevus Platform project, including: + +- Reporting bugs or issues +- Suggesting new features or improvements +- Submitting pull requests with bug fixes or new features +- Improving documentation +- Participating in discussions and providing feedback + +## Getting Started + +1. Fork the repository and create a new branch for your contribution. +2. Follow the project's coding standards and conventions. +3. Write clear and descriptive commit messages. +4. Test your changes locally before submitting a pull request. +5. Submit a pull request with a detailed description of your changes. + +## Branching Conventions + +When creating a new branch for your contribution, please follow these naming conventions: + +topic names. +``` +docs/ +fix/- +feature/- +refactor/- +``` + +If the scope of the issue changes for any reason, please create a new branch with the appropriate naming convention. + +## Local Testing + +While we provide CI/CD through GitHub Actions, it is recommended to set up your local testing environment to run tests before pushing commits. Follow the instructions in the project's documentation or the CI configuration files to set up your local testing environment. + +### Running Tests + +Currently, there are three sets of tests that need to be run: + +```bash +melos test-unit +# These two need to be run inside packages/conduit +dart test -j1 test/* # use dart test -j1 for Windows and macOS +dart tool/generated_test_runner.dart +``` +The first command will run all the unit tests in the Conduit package and its dependencies. The last two commands test CLI components and string-compiled code, respectively. + +## Pull Request Requirements + +Document the intent and purpose of the pull request. +All non-documentation pull requests must include automated tests that cover the new code, including failure cases. +If tests work locally but not on the CI, please mention @j4qfrost on the pull request or reach out on the Discord server. + +## Commits and Versioning + +The project uses melos for tooling, which provides autoversioning based on conventional commits. Commits to the master branch will usually be squashed from pull requests, so ensure that the pull request title uses conventional commits to trigger versioning and publishing CI. You do not need to use conventional commits on each commit to your branch. + +## Licensing + +Protevus Platform is released under the [MIT License](LICENSE). + +Thank you for your interest in contributing to the Protevus Platform project! We look forward to your contributions and appreciate your efforts to make this project better. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..e69de29b diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..9c9ca20f --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,49 @@ +# Protevus Platform Security + +The Protevus Platform team takes security seriously and is committed to ensuring the security and integrity of the project. This document outlines the security practices, policies, and guidelines followed by the project. + +## Reporting Security Vulnerabilities + +If you discover a security vulnerability within the Protevus Platform, we appreciate your help in disclosing it responsibly. Please follow these steps: + +1. **Do not** create a public issue or disclose the vulnerability publicly. +2. Send an email to the Protevus Platform security team at [security@protevus.com](mailto:security@protevus.com) with details about the vulnerability, including: + - A brief description of the vulnerability + - Steps to reproduce the issue + - Any potential impact or consequences + - Your contact information (optional) +3. The security team will acknowledge your report and work with you to investigate and address the vulnerability. +4. Once the vulnerability has been addressed, you will be credited in the release notes and the security advisory. + +We appreciate your cooperation in responsibly disclosing security vulnerabilities, as it helps us maintain the integrity and security of the Protevus Platform. + +## Security Practices + +The Protevus Platform team follows industry-standard security practices to ensure the security and integrity of the project: + +- **Code Reviews**: All code contributions undergo thorough code reviews by the core team to identify and mitigate potential security risks. +- **Secure Coding Practices**: The project adheres to secure coding practices, including input validation, output encoding, and protection against common web application vulnerabilities (e.g., XSS, CSRF, SQL injection). +- **Dependency Management**: Third-party dependencies are regularly monitored and updated to address known vulnerabilities. +- **Security Testing**: The project undergoes regular security testing, including static code analysis, dynamic application security testing (DAST), and penetration testing. +- **Secure Development Lifecycle**: The project follows a secure development lifecycle, incorporating security considerations throughout the development process, from design to deployment. + +## Security Advisories + +In the event of a security vulnerability being discovered and addressed, the Protevus Platform team will release a security advisory containing the following information: + +- A description of the vulnerability +- Affected versions +- Mitigation steps or patches +- Credit to the individuals who reported the vulnerability (if desired) + +Security advisories will be published on the project's website and communicated to the community through appropriate channels. + +## Responsible Disclosure + +The Protevus Platform team believes in responsible disclosure of security vulnerabilities. We will work with researchers and security professionals to address vulnerabilities in a timely and responsible manner, ensuring that the necessary fixes and mitigations are in place before publicly disclosing the details of the vulnerability. + +## Conclusion + +The security and integrity of the Protevus Platform are of utmost importance to the project team. We are committed to following industry-standard security practices, responsibly disclosing and addressing vulnerabilities, and maintaining open communication with the community regarding security matters. + +If you have any questions or concerns regarding the security of the Protevus Platform, please contact the security team at [security@protevus.com](mailto:security@protevus.com). diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 00000000..dee8927a --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,30 @@ +# This file configures the static analysis results for your project (errors, +# warnings, and lints). +# +# This enables the 'recommended' set of lints from `package:lints`. +# This set helps identify many issues that may lead to problems when running +# or consuming Dart code, and enforces writing Dart using a single, idiomatic +# style and format. +# +# If you want a smaller set of lints you can change this to specify +# 'package:lints/core.yaml'. These are just the most critical lints +# (the recommended set includes the core lints). +# The core lints are also what is used by pub.dev for scoring packages. + +include: package:lints/recommended.yaml + +# Uncomment the following section to specify additional rules. + +# linter: +# rules: +# - camel_case_types + +# analyzer: +# exclude: +# - path/to/excluded/files/** + +# For more information about the core and recommended set of lints, see +# https://dart.dev/go/core-lints + +# For additional information about configuring this file, see +# https://dart.dev/guides/language/analysis-options diff --git a/s b/s new file mode 100644 index 00000000..e69de29b