Bossa implementation notes
Database tables
Until Bossa has good web-based administration tools, you'll often need to directly examine and modify its MySQL database, using the command-line tool 'mysql' or a web-based interface such as phpMyAdmin.
The database tables used by Bossa (in addition to BOINC's tables for users, teams, etc.) are as follows:
bossa_app:
| field name | type | meaning |
| id | integer | row ID, assigned by MySQL |
| create_time | integer | row creation time |
| name | varchar(255) | short name (internal use; no spaces) |
| user_friendly_name | varchar(255) | user-visible name (spaces OK) |
| long_jobs | tinyint | nonzero if user can have > 1 active job |
| start_url | varchar(255) | name (relative to project URL) of start script |
| deprecated | tinyint | nonzero if deprecated (don't show) |
| info | text | information (typically encoded in JSON) such as the criteria for which users to issue jobs to |
bossa_job:
| field name | type | meaning |
| id | integer | row ID, assigned by MySQL |
| create_time | integer | row creation time |
| name | varchar(255) | a unique name for this job |
| app_id | integer | ID of bossa_app |
| info | text | job-specific info (file names etc.) typically JSON-encoded |
| batch | integer | batch number (use to group jobs) |
| time_estimate | integer | number of seconds this job is likely to take |
| time_limit | integer | give up if not completed after this number of seconds |
| more_needed | tinyint | nonzero if more completed instances of this job are needed |
| npending | integer | number of pending instances |
| nsuccess | integer | number of successfully completed instances |
| nsuccess_needed | integer | required number of successfully completed instances |
bossa_job_inst:
| field name | type | meaning |
| id | integer | row ID, assigned by MySQL |
| create_time | integer | row creation time |
| job_id | integer | ID of bossa_job |
| user_id | integer | ID of user |
| finish_time | integer | time when finished, or zero |
| info | text | outcome info (usually JSON-encoded) |
bossa_app_user:
| app_id | integer | ID of bossa_app |
| user_id | integer | ID of user |
| info | text | description of the user's skill or ranking at a given app, typically JSON-encoded |
Bossa PHP classes
Bossa provides the following classes (in html/inc/bossa.inc and html/inc/bossa_db.inc):
- BossaApp, BossaJob, BossaJobInst
- These correspond to the above tables, and have fields corresponding to each database field. They offer functions to insert, look up, and modify database rows.
- Bossa
- Utility functions.
