diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..65812e382 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,58 @@ +# Contributing to the Ping Identity Android SDK + +First off, thank you for considering contributing to the Ping Identity Android SDK! We appreciate your time and effort. + +This document outlines the guidelines for contributing to this project. Please take a moment to review it before you get started. + +## Getting Started + +1. **Fork the repository** on GitHub. +2. **Clone your fork** locally: + ```sh + git clone https://github.com/YOUR_USERNAME/ping-android-sdk.git + ``` +3. **Open the project** in Android Studio. The project uses Gradle, so dependencies will be automatically resolved when you open it. + +## Building and Testing + +Before submitting any changes, please ensure that you can build the project and that all tests pass. + +To run all unit tests, execute the following command from the root of the project: + +```sh +./gradlew --rerun-tasks testDebugUnitTestCoverage --stacktrace --no-daemon +``` + +Ensure that all existing tests pass and that you add new tests for any new functionality you introduce. + +## Standard of Practice + +This project follows the internal standards of practice maintained by the Ping Identity SDK team. Please review and adhere to these guidelines before submitting any code: + +- [Android Style Guide](https://github.com/ForgeRock/sdk-standards-of-practice/blob/main/code-style/android-styleguide.md) +- [Android Security Guidelines](https://github.com/ForgeRock/sdk-standards-of-practice/blob/main/security/security-guidelines-android.md) + +In general, try to match the style of the existing code in the project. + +## Submitting a Pull Request + +1. Create a new branch for your feature or bug fix: + ```sh + git checkout -b your-feature-branch + ``` +2. Make your changes and commit them with a clear and concise message. +3. Ensure all tests pass. +4. Push your branch to your fork: + ```sh + git push origin your-feature-branch + ``` +5. Open a **Pull Request** to the `develop` branch of the original repository. +6. In your Pull Request, please follow the template provided. This includes: + * **Linking to a JIRA ticket** if applicable. + * Providing a **clear description and justification** of the changes you have made. + +Your pull request will be reviewed by the project maintainers. You may be asked to make changes before your PR is merged. + +## License + +By contributing to the Ping Identity Android SDK, you agree that your contributions will be licensed under the [MIT License](LICENSE) that covers the project. diff --git a/README.md b/README.md index 4e127cf22..090c9e8da 100644 --- a/README.md +++ b/README.md @@ -7,23 +7,45 @@ The Ping SDK for Android is designed for creating mobile native Apps that seamle It offers a range of APIs for user authentication, user device management, and accessing resources secured by PingOne. This SDK is support Browser, iOS and Android platforms. -# Modules +Please visit our [ documentation ](https://docs.pingidentity.com/sdks/latest/sdks/index.html) site for more information. - ping +# Modules + ping ├── foundation # Foundation module - │ ├── android # Android Common - │ ├── davinci-plugin # For module that integrated with davinci - │ ├── journey-plugin* # For module that integrated with journey - │ ├── logger # Provide Logging interface and common loggers - │ ├── oidc* # Provide OIDC interface - │ ├── orchestrate # Orchestrating authentication flow framework - │ ├── storage # Provide Storage interface - │ └── utils # Provide common utilities function - ├── davinci # Orchestrate authentication with PingOne Davinci - ├── journey* # Orchestrate authentication with Journey - ├── mfa* # Povide MFA capabilities such as OTP, PUsh, WebAuthn - ├── external-idp # Provide Native Google, Facebook, Apple SocialLogin - ├── ... - └── ... + │ ├── android # Android common utilities + │ ├── browser # Browser launcher / Custom Tabs support + │ ├── davinci-plugin # Plugin contract for DaVinci integration + │ ├── device # Device capabilities + │ │ ├── device-client # Device client information + │ │ ├── device-id # Unique device identifier + │ │ ├── device-profile # Device profile collection + │ │ └── device-root # Device root / integrity detection + │ ├── journey-plugin # Plugin contract for Journey integration + │ ├── logger # Logging interface and built-in loggers + │ ├── migration # Legacy-to-modern data migration helpers + │ ├── network # Ktor-based HTTP network layer + │ ├── oidc # OIDC / OAuth 2.0 interface + │ ├── orchestrate # Authentication flow orchestration framework + │ ├── storage # Encrypted and plain storage abstractions + │ ├── testrail # TestRail integration for test reporting + │ └── utils # Shared utility functions + ├── davinci # Orchestrate authentication with PingOne DaVinci + ├── external-idp # Native social login (Google, Facebook, Apple) + ├── journey # Orchestrate authentication with PingAM Journey + ├── mfa # MFA capabilities + │ ├── auth-migration # Authentication data migration helpers + │ ├── binding # Device binding (biometric / PIN / none) + │ ├── binding-migration # Legacy device binding data migration + │ ├── binding-ui # Jetpack Compose UI for device binding + │ ├── commons # Shared MFA types and utilities + │ ├── fido # FIDO2 / WebAuthn + │ ├── oath # TOTP / HOTP one-time passwords + │ └── push # Push notification authentication + ├── protect # PingOne Protect fraud signals + ├── recaptcha-enterprise # reCAPTCHA Enterprise integration + └── samples # Sample applications + └── pingsampleapp # Combined Ping sample app + +# License -***Note***: * Module under development and experimental \ No newline at end of file +This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details \ No newline at end of file