Skip to content

Initial version of youcat documentaion.#212

Open
stephengwyn wants to merge 1 commit into
opencadc:youcat-docsfrom
stephengwyn:youcat-docs
Open

Initial version of youcat documentaion.#212
stephengwyn wants to merge 1 commit into
opencadc:youcat-docsfrom
stephengwyn:youcat-docs

Conversation

@stephengwyn

Copy link
Copy Markdown
Contributor

No description provided.

@shinybrar
shinybrar self-requested a review July 21, 2026 18:12

@shinybrar shinybrar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • There is no Python API workflow included. You need to add better information for both CLI / Python API for installation, discovery, sync/async query, and certificate-authentication examples. PyVO is the best fit: it explicitly supports YouCat-style create_table, load_table, create_index, and remove_table, though not permissions. PyVO TAP documentation
  • Also mention that for opensource tables, no auth is needed.


Run a few queries:
```bash
cadc-tap query <tablename> 'query'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cadc-tap query <tablename> 'query' is invalid; the CLI accepts one ADQL query positional.

This violates the repo requirement that documentation match implemented behavior. cadctap parser

Comment on lines +126 to +140
While table creation is done only using VOTable format, table
loading is done using FITS, .csv (comma separated values) and
.tsv (tab separated values). Convert your table to one of those
formats.

You should probably break the table up into smaller chunks of about
10000 rows. Smaller than that, the overhead of each call to the service
will slow things down. Larger than that, the possibility of an error
taking out a large transfer becomes a challenge.

Tables are loaded with commands like:
```bash
cadc-tap load <schemaname.tablename> <filename>
```
e.g.:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incomplete docs, The unqualified load command works only for TSV. CSV requires -f csv; FITS requires -f FITSTable.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Give separate TSV, CSV, and FITS commands or clearly state that TSV is the default.

Comment on lines +7 to +16
YouCat (=Your Catalog) allows users to upload tables. The tables are then acessible via the [Table Access Protocol (TAP)](https://ws-uv.canfar.net/youcat). YouCat was built after several requests from users who needed to publish a database, but did not have the resources to publish it at their home institutions. Note that YouCat is not optimal for a database use cases requiring frequent updates, modifications or deletions. The permissions can be set so that the database access is restricted to the owner, or shared with a group, or made world-public.

## Getting access
TAP is an IVOA (International Virtual Observatory Alliance) protocol. While loading the table is best done with the CADC python client, querying can be down with the CADC client, but also a large number of other tools, e.g. [topcat](https://www.star.bris.ac.uk/~mbt/topcat/). The TAP handle for youcat is currently: https://ws-uv.canfar.net/youcat

<!-- TODO -->
## Creating a table

## Using the TAP API
### Step 0.

<!-- TODO -->
#### Get write permission for a schema
If you don't already have a schema, send a short e-mail to support@canfar.net indicating describing the project and size estimates. Turn around is typically 1-2 working days. If there is an existing schema, but you are not the owner, the owner will have to give you write permission.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General cleanup of language is needed here, introducing the user to YouCat as a Database as a Service.

#### Get a certificate
This is used to authenticate and authorise the puts
```bash
cadc-get-cert --user <CADCusername>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the CANFAR branding of our tools, all users here can be assumed that they have canfar python project already installed, As a result, this needs to be

canfar login cadc

To require the user to install cadc-tap you have to provide it as python optional, e.g.

pip install canfar[youcat]

This then installs cadc-tap and pyVO as needed. This needs changes to depedency management in the package, via the uv tools,
e.g.

uv add --group youcat cadc-tap


Run a few queries:
```bash
cadc-tap query <tablename> 'query'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also invalid grammer, use a e.g. a open project, cadc-tap query cfht to provide the user with a real example.

created to keep track of what was succesfully loaded and load the
difference.

### Step 4: Check the table

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no discovery workflow. Add cadc-tap schema, cadc-tap schema SCHEMA.TABLE, and Python equivalents

# YouCat

YouCAT is a CANFAR-branded OpenCADC TAP service for user-owned and managed tables. It is separate from the CANFAR Science Platform.
YouCat is a database service that lets users create and share tables. It is separate from the CANFAR Science Platform.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explicitly state that YouCat is accessed through TAP using ADQL 2.0—not through PostgreSQL, Python DB-API, or SQLAlchemy connection details.

## Permissions and sharing

<!-- TODO -->
A newly created table will not generally be readable by others. The general syntax is:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The onboarding says a owner must grant write access, but only read-sharing examples are provided. Add schema/table g+w guidance and explain what schema-level versus table-level write access permits.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants