Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -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.
56 changes: 39 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details
Loading