How do I refactor my client to Tallyfy's new OAuth2.0?
As of November 8th, 2018 Tallyfy moved authentication to the OAuth2.0 industry standard.
For 3rd Party API consumers ("Clients"), this will mean a few changes in how login calls are made and how authentication tokens are received.
API Calls
Once the token is received, all other calls will be as they were previously. However, the call to receive your access token has changed:
New URL:
POST https://go.tallyfy.com/api/oauth/token
New JSON Request Body:
'grant_type':'password', 'client_id':'1', 'client_secret':'${client_secret}', 'username':'${email}', 'password':'${password}' 'scope': '*'
Grant Type
For the initial token request, the grant type will be "password", all subsequent calls will user the "bearer" grant type.
Client Secret and ID
You will notice that client secret and client ID are now required headers for the initial token request. To register for a client ID and secret, please reach out to us at support@tallyfy.com.
Scopes
Scopes set permissions when requesting authorization to access an account. Through scopes, users can control the actions a third-party application or client can perform on their behalf, ensuring better security and privacy.
Our available scopes are:
- organization - Grants access to manage organization, users, tags and subscription
- account - Grants access to manage account details, account tasks and process views
- template - Grants access to manage templates and steps
- process - Grants access to manage process, tasks and one-off tasks
- * - for clients that require the all scopes, the "wildcard" symbol can be used
Process Scope
- Can Start/Update/Delete/Restore Process
- Can Complete/Re-Open Tasks
- Can Report/Resolve task issues
- Can Add/Remove tags in processes and tasks
Template Scope
- Can Create/Update/Delete/Restore Templates
- Can Create/Update/Delete Steps
- Can Create/Update/Delete Forms
- Can Create/Update/Delete Rules
- Can Add/Remove tags in templates
Account Scope
- Can Update current user profile and preferences.
- Can Create/Update/Delete current user process views
- Can Recover current user password
- Can Get list of assigned tasks
Organization Scope
- Can Update organization details
- Can Update billing info and plan
- Can Invite/Disable/Delete users
- Can Create/Update/Delete tags
- Can Create/Update/Delete users groups
- Can Create/Update/Delete users roles
Endpoint Changes
As we are updating our authentication and reviewing our scopes, we will also refactored some of our endpoints. Some will be added or changed to either better match their appropriate scope or to become more descriptive of their actual function, while some will be eliminated due to redundancy or obsolescence.
New API Endpoints
- /oauth/token - get access token
- /oauth/token/refresh - refresh access token
Renamed API Endpoints
- GET /url-check changed to > /utils/check-url
- GET /countries changed to > /utils/countries
- GET /p/static/config changed to /utils/config
- GET /token changed to > /support/token
- GET/PUT /organizations/{org}/users/me changed to > /organizations/{org}/me
- GET/POST /organizations/{org}/users/me/preferences changed to > /organizations/{org}/me/preferences
- GET/POST /organizations/{org}/accounts/views changed to > /organizations/{org}/me/process-views
- GET/PUT /organizations/{org}/accounts/views/{id} changed to > /organizations/{org}/me/process-views/{id}
- GET /organizations/{org}/role changed to > /organizations/{org}/me/role
- PUT /organizations/{org}/accounts changed to > /organizations/{org}/me
- GET /organizations changed to > /me/organizations
- PUT /organizations/{org}/accounts/{id} changed to > /organizations/{org}/users/{id}
Removed API Endpoints
- /organizations/{org}/checklists/{checklist_id}/import-steps
- /organizations/{org}/checklists/import
- /organizations/{org}/steps/{step_id}/copy
- GET organizations/{org}/integrations/{type}
- POST organizations/{org}/integrations/{type}
- PUT organizations/{org}/integrations/{type}
- GET /organizations/{org}/billing-info - instead use /organizations?with=billing_info
- /organizations/{org}/permissions
- GET /organizations/{org}/users/username/{username}
- /auth/login use instead /oauth/token
- /auth/check-reset-code
- /auth/reset-password-from-account
- /auth/resend-activation
- GET/POST /organizations/{org}/guests/tasks/{code}/comments
- /webhooks/start-run
- /webhooks/post-comment
- /zapier/api/hooks
- /zapier/api/hooks/{id}
- GET/POST/PUT/DELETE /organizations/{org}/comments
- GET /organizations/{org}/runs/{run}/activities
- GET /organizations/{org}/checklists/{checklist}/activities
- GET /organizations/{org}/steps/{step}/activities
- GET /organizations/{org}/runs/{runs}/tasks/{task}/activities
- GET /organizations/{org}/comments/{comment}/activities
- GET /organizations/{org}/users/{user}/activities
- /organizations/{org}/integrations/hotdocs-package
- /organizations/{org}/integrations/hotdocssession
- PUT /organizations/{org}/checklists/{id}/activate instead use /organizations/{org}/checklists/{id}/restore