A project managed by Moonbase can be in 1 of 4 states:
-
Staged - A user is making changes to this project.
- When the project is submitted it transitions to the ‘Pending Approval’ state.
- Any modifications may be made to a project in this state.
-
Pending Approval - The project has been submitted to moderators for approval. Project modifications cannot be made in this state
- The project can be withdrawn by a user to return it to the ‘Staged’ state.
- A rejected project will be returned to the ‘Staged’ state.
- An approved project will transition to the ‘Pending Release’ state.
-
Pending Release - The project has been approved by the moderators and requires final user signal to publish the project publicly. Project modifications cannot be made in this state.
- The project can be withdrawn by a user to return it to the ‘Staged’ state.
- The project can be released by owning user to publish the project publicly, transitioning it to the ‘Released’ state.
-
Released - The project has been published to Moonbase and will now be publicly accessible. Project modifications cannot be made in this state.
- If a project version absolutely MUST be removed and the issue cannot be remedied by a new project version then this can be done from the Moonbase backend dashboard.
Generally unless a user is intending to upload and/or publish projects to Moonbase there is no need to authenticate. All published projects are made available via the API without the need of authentication.
Authentication is tied to the talk.codea.io forum and requires the user to have a forum account in order to authenticate.
This is done in 3 steps:
- A HTTP GET request is made to
/v1/auth/authenticate.- This returns a json object containing 2 URLs;
stage1Url&stage2Url.
- This returns a json object containing 2 URLs;
- A web browser is used to navigate to
stage1Urlwhich will prompt the user to login to the talk.codea.io forum. Once the user has logged in they will see a message that reads ‘User successfully authenticated! Please close this page’. The web browser may now be closed. - A HTTP GET request is then made to the
stage2Urlfrom the first call.- This returns a JSON object containing an
api_keyentry. This is the user’s final API key that should be provided when making any API requests requiring authentication.
- This returns a JSON object containing an
Full API documentation is available in DOCS.md.