API Flows
This section documents the most commonly used sequences of gRPC API requests for typical Onli Platform workflows. These flows represent real-world usage patterns that help you understand how the various API calls work together to accomplish common tasks.
Overview
The Onli Platform API flows are organized into three main levels of complexity:
- Level 1: Basic asset issuance to your first owner
- Level 2: Asset ownership transfer between owners
- Level 3: Authentication and authorization patterns
Each flow builds upon the previous level, creating a comprehensive understanding of how to work with the Onli Platform APIs in practice.
Level 1: Issue to Your First Owner
This flow covers the complete process of creating an owner and issuing your first asset to them. This is typically the starting point for any Onli Platform integration.
Prerequisites
- Onli Cloud instance configured
- Valid API credentials
- iOS device for testing (OnliYou app)
Step-by-Step Flow
1. Create Owner
CreateOwner RPC
Purpose: Create a new owner account in the system
Required: Owner credentials and basic profile information
2. OnliYou App Setup
- Download OnliYou app from App Store
- Turn on developer mode in iOS settings
- Add
deployment_subdomainand credentials to verify user - Initialize vault in iOS app
3. Verify User Status
- Check status of user in Onli Cloud web app
- Ensure user status shows as "active"
- Verify vault initialization completed successfully
4. Issue Asset
Issue RPC
Purpose: Create and deliver the first asset to the owner
Parameters: Asset definition, owner ID, initial metadata
5. Verification Steps
- View package received in iOS app (OnliYou)
- Check Oracle to verify ownership of newly issued assets (web app)
- Direct owner to Auth Log in iOS app to show event (no entry yet at this stage)
Expected Outcomes
- Owner successfully created and active
- OnliYou app configured and vault initialized
- Asset successfully issued and received
- Oracle confirms ownership record
- Event logged in OnliYou app
Level 2: Change Ownership of Assets to Second Owner
This flow demonstrates how to transfer asset ownership between two owners, including the request/response pattern that ensures secure transfers.
Prerequisites
- Completed Level 1 flow (first owner with assets)
- Second owner account ready to be created
Step-by-Step Flow
1. Create Second Owner
CreateOwner RPC
Requirement/Dependency: Must have a second owner before transfer can occur
Note: This owner will be the recipient of the asset transfer
2. Initiate Transfer Request
AskToMoveStream RPC
Purpose: Request permission from current owner to transfer asset
Target: Send request to the first owner (current asset holder)
Parameters: Asset ID, source owner, destination owner
3. Owner Accepts Transfer
- First owner receives AskToMove request notification in OnliYou app
- Owner reviews transfer details and accepts the request
- System generates
asktomoveidfor the approved transfer
4. Monitor Transfer Status
- Onli Cloud UX shows request status progression:
- a) Request sent
- b) Request accepted
- c)
asktomoveidstored for subsequent RPC request
5. Execute Ownership Change
ChangeOwner RPC
Purpose: Execute the actual ownership transfer
Required Parameter: asktomoveid from step 4
Process: System updates ownership records and transfers asset
6. Verification Steps
- Check Oracle to verify ownership of assets moved
- Confirm new owner appears in ownership records
- Verify old owner no longer has asset access
- Direct both owners to Auth Log in iOS app to show transfer events
Expected Outcomes
- Second owner successfully created
- Transfer request sent and accepted
- Asset ownership successfully changed
- Oracle reflects new ownership
- Transfer events logged for both owners
Level 3: Authentication & Authorization
This advanced flow covers the authentication and authorization patterns that enable secure interactions between appliances and owners.
Authentication Flow
Owner Authentication
This sub-flow demonstrates how to authenticate an existing owner for secure operations.
1. Initiate Authentication
AuthenticateOwner RPC (stream, 60-second limit)
Purpose: Verify owner identity for secure operations
Target: Existing user with active vault
Time Limit: 60-second stream timeout for security
2. Owner Response Handling
- Owner receives authentication notification in OnliYou app
- Owner can accept or deny the authentication request
- System maintains secure session during decision period
3. Complete Authentication
- Onli Cloud web app displays authentication response
- Stream ends automatically after response or timeout
- Authentication result logged for audit purposes
4. Verification
- Direct owner to Auth Log in iOS app to show authentication event
- Verify authentication event recorded with timestamp and result
Authorization Flow
Behavior Authorization
This sub-flow shows how to authorize specific behaviors or actions for an authenticated owner.
1. Setup User Class and Behavior
- Use appliance tray to create user class definition
- Define specific user behavior example
- Configure permission parameters and constraints
2. Initiate Authorization
AuthorizeBehavior RPC (stream)
Purpose: Request permission for specific behavior/action
Target: Authenticated owner
Parameters: Behavior definition, permission scope, duration
3. Owner Authorization Response
- Owner receives behavior authorization notification in OnliYou app
- Owner reviews requested permissions and behavior details
- Owner can accept or deny the authorization request
4. Complete Authorization
- Onli Cloud web app displays authorization response
- Stream ends after owner response
- Authorization permissions activated if approved
5. Verification
- Direct owner to Auth Log in iOS app to show authorization event
- Verify behavior permissions are properly configured
- Test authorized behavior to ensure it works as expected
Expected Outcomes
- Owner successfully authenticated
- User class and behavior properly defined
- Authorization request sent and processed
- Permissions activated for approved behaviors
- All auth events logged and auditable
Next Steps
After mastering these flows, explore:
- Buf.Build Integration for protocol definitions
- Postman Collection for interactive testing
- Requirements for setup prerequisites
For technical support with implementing these flows, contact our integration team.