Public Data Interface

Academic API

Public RPC v1 documents the current public interface. Research Dashboard is the canonical administrative source for the academic metadata documented here. Downstream applications do not query Research Dashboard tables directly: they use a deliberately curated, anonymous-safe Supabase RPC layer.

Public RPC v1ActiveRead-only

Overview

Canonical source

Research Dashboard maintains the canonical administrative records. Public contracts select only the fields and records intended for external consumption.

Access model

Public consumers use the Supabase Data API with a publishable key and call only the RPC functions below. Anonymous consumers have no direct SELECT access to the underlying Research Dashboard tables.

Public boundary

Papers, projects and teaching portfolio items apply their explicit public visibility rules. Conferences expose the documented presentation shape for all stored presentation records, and work analytics expose only aggregate measures.

Versioned interface

Public RPC v1 is the current stable public contract within Distant Forge. Contract changes are recorded in Research Dashboard release documentation and validated against the migration history.

How consumers connect

The Academic API is read-only. Applications such as the Academic Website and Academic CV Studio connect to Supabase using the project URL and a publishable key, then call only the public functions documented below. They do not receive direct access to Research Dashboard tables.

const { data, error } = await supabase.rpc(
  'list_public_papers'
)

Transport

Supabase Data API / RPC with a publishable key. This remains the public machine interface.

Reference client

Research Dashboard also maintains a portable TypeScript reference client with strict runtime validation. It sits above the RPC transport and does not change the Public RPC v1 surface.

Architecture

Research Dashboard / Supabase → curated anonymous-safe RPCs → downstream consumers

If you would like to use the Academic API in another application or research workflow, please contact Dr. Bastián González-Bustamante.

Browse the API

Use the labels below to jump directly to the corresponding documentation sections further down this page.

Resource

Publications

Public bibliographic, presentation and research-resource metadata for papers explicitly marked public.

list_public_papers()

Lists papers whose public metadata is explicitly marked public and has a public slug.

Listing

Return fields

slugtext
titletext
authorstext[]
abstracttext
venuetext
publication_datedate
doi_urltext
publication_urltext
preprint_urltext
github_urltext
dataset_urltext
featuredboolean
publication_indextext
languagetext
google_scholar_citationsinteger
google_scholar_citations_captured_ondate
project_urltext
si_file_urltext

Notes

  • Google Scholar fields contain only the latest stored Google Scholar snapshot; both are null when no Google Scholar snapshot exists.
  • Citation and Key highlight presentation fields are deliberately omitted from the listing.

Known consumers: Academic Website, Academic CV Studio

get_public_paper(text)

Returns one explicitly public paper by its stable public slug.

Detail

Parameters

p_slug: text

Return fields

slugtext
titletext
authorstext[]
abstracttext
venuetext
publication_datedate
doi_urltext
publication_urltext
preprint_urltext
github_urltext
dataset_urltext
featuredboolean
publication_indextext
languagetext
google_scholar_citationsinteger
google_scholar_citations_captured_ondate
citationtext
highlight_texttext
highlight_image_filenametext
highlight_image_alttext
highlight_image_captiontext
project_urltext
si_file_urltext

Detail-only fields

citationhighlight_texthighlight_image_filenamehighlight_image_althighlight_image_caption

Notes

  • Unknown or private slugs return no row.
  • Key highlight asset fields are filenames/metadata only; downstream applications resolve their own static assets.

Known consumers: Academic Website, Academic CV Studio

Not exposed

  • Internal paper and owner IDs
  • Workflow status, revision round, milestones, submissions and revision history
  • Notes, work sessions and activity-label relationships
  • Overleaf links
  • Citation snapshot IDs, citation history and non-Google-Scholar citation sources
  • Author emails, affiliations and ORCIDs

Resource

Projects

Curated project metadata and associated outputs for projects explicitly marked public.

list_public_projects()

Lists explicitly public projects and their already-public associated outputs.

Listing

Return fields

slugtext
short_titletext
titletext
abstracttext
roletext
fundertext
funder_notetext
urltext
start_yearinteger
end_yearinteger
statustext
featuredboolean
project_image_filenametext
funder_image_filenametext
publication_slugstext[]
conference_presentationsjsonb

Notes

  • publication_slugs contains only papers that are themselves explicitly public.
  • conference_presentations[] contains event_name, event_short_name, location, presentation_date, start_date, end_date, personal_attendance, involves_trip, presentation_title, authors, presentation_type and url.

Known consumers: Academic Website, Academic CV Studio

get_public_project(text)

Returns one explicitly public project by its stable public slug.

Detail

Parameters

p_slug: text

Return fields

slugtext
short_titletext
titletext
abstracttext
roletext
fundertext
funder_notetext
urltext
start_yearinteger
end_yearinteger
statustext
featuredboolean
project_image_filenametext
funder_image_filenametext
publication_slugstext[]
conference_presentationsjsonb

Notes

  • The current project detail shape is intentionally the same as the project listing shape.
  • Unknown or private slugs return no row.

Known consumers: Academic Website, Academic CV Studio

Not exposed

  • Internal project and owner IDs
  • Activity-label assignments and tracked project hours
  • Private paper IDs or private paper associations
  • Internal association-row IDs

Resource

Conferences

Public presentation metadata for conference records. The current RPC has no per-record visibility flag: every stored conference presentation is included in this curated field-level contract.

list_public_conference_presentations()

Lists conference presentation records in descending conference-start-date order.

Listing

Return fields

event_nametext
event_short_nametext
locationtext
presentation_datedate
start_datedate
end_datedate
personal_attendanceboolean
involves_tripboolean
presentation_titletext
authorstext[]
presentation_typetext
urltext

Notes

  • presentation_date is a deprecated compatibility alias of start_date.
  • personal_attendance indicates that the profile owner attended or plans to attend; involves_trip implies personal_attendance.
  • No public conference detail RPC currently exists.

Known consumers: Academic Website, Academic CV Studio

Not exposed

  • Internal presentation and owner IDs
  • Private notes
  • Internal paper IDs and the optional dashboard paper relationship

Resource

Teaching

Public teaching portfolio metadata for items explicitly marked public, plus the global Teaching season status.

list_public_teaching()

Lists explicitly public teaching portfolio items for public cards and CV use.

Listing

Return fields

slugtext
nametext
institutiontext
summarytext
roletext
start_yearinteger
end_yearinteger
is_currentboolean
levelstext[]
times_taughtinteger
student_countinteger
course_image_filenametext

Notes

  • slug is optional for public Teaching items; no public teaching detail RPC currently exists.

Known consumers: Academic Website, Academic CV Studio

get_public_teaching_settings()

Returns whether the Dashboard owner currently marks Teaching season as active.

Status

Return fields

teaching_season_activeboolean

Notes

  • This is an owner-level status independent of individual Teaching Portfolio item visibility.
  • The underlying Teaching settings row, owner identifier, and timestamps remain private.

Not exposed

  • Internal teaching and owner IDs
  • Activity-label relationships
  • Tracked teaching hours and session counts
  • Internal activity/work-session records
  • Internal Teaching-setting owner metadata and timestamps

Resource

Calendar settings

Owner-level public feature settings for Catholic Calendar integration on the Academic Website.

get_public_calendar_settings()

Returns whether the Academic Website Catholic Calendar integration and its long-display stress test are active.

Status

Return fields

catholic_calendar_activeboolean
stress_test_activeboolean

Notes

  • catholic_calendar_active controls whether the Academic Website should enable its Catholic Calendar integration.
  • stress_test_active allows the Academic Website to substitute a deliberately long composed display for layout testing.
  • Neither flag hides the signed-in Dashboard Calendar display.
  • The underlying Calendar settings row, owner identifier, and timestamps remain private.

Known consumers: Academic Website

Not exposed

  • Underlying Calendar settings row and owner identifier
  • Internal created/updated timestamps

Resource

Software Ecosystem

Curated public profiles for software, applications and reusable tools explicitly marked for public exposure, including lifecycle period metadata.

list_public_software()

Lists Software Ecosystem items explicitly marked for public exposure.

Listing

Return fields

slugtext
nametext
short_descriptiontext
categorytext
current_versiontext
development_stagetext
statustext
repository_visibilitytext
repository_urltext
production_urltext
documentation_urltext
start_yearinteger
end_yearinteger
featuredboolean

Notes

  • Repository visibility is independent from public profile exposure.
  • repository_url is null whenever repository_visibility is private, even for an otherwise public software profile.
  • The listing is ordered by Featured state, status priority, start year, then name.
get_public_software(text)

Returns one explicitly public Software Ecosystem profile by its stable slug.

Detail

Parameters

p_slug: text

Return fields

slugtext
nametext
short_descriptiontext
categorytext
current_versiontext
development_stagetext
statustext
repository_visibilitytext
repository_urltext
production_urltext
documentation_urltext
start_yearinteger
end_yearinteger
featuredboolean

Notes

  • The current software detail shape is intentionally the same as the software listing shape.
  • Unknown or non-public slugs return no row.
  • repository_url is null whenever repository_visibility is private.

Not exposed

  • Internal software and owner IDs
  • Private/public exposure control itself; only exposed profiles are returned
  • Private repository URLs when repository_visibility is private
  • Internal created/updated timestamps

Resource

Work analytics

A deliberately aggregated yearly work summary that supports public work and coffee visualisation without exposing raw work records.

get_public_work_analytics(year)

Returns one calendar year of daily net working minutes and coffee counts plus two annual working-day averages.

Aggregate

Parameters

p_year: integer — 2000 through the current calendar year

Return fields

yearinteger
average_net_minutes_per_working_dayinteger
average_coffees_per_working_daynumeric
daysjsonb[]

Notes

  • Each days[] item contains date, net_minutes and coffee_count; calendar days without a daily log return zero for both measures.
  • A working day is a daily log with at least one work session.
  • The function rejects years before 2000 and years after the current calendar year.

Known consumers: Academic Website, Weekly Penguin Timeline

Not exposed

  • Daily-log and work-session IDs
  • Session start/end times
  • Activity labels, locations and linked papers
  • Owner metadata

Resource

Availability

Public-safe dated availability ranges for timeline consumers, separate from work analytics and internal Planning details.

list_public_availability(year)

Lists public-safe conference trips, Winter/Summer holidays, and generic unavailable periods intersecting a requested calendar year.

Listing

Parameters

p_year: integer — 2000 through five years after the current calendar year

Return fields

typetext
start_datedate
end_datedate
labeltext

Notes

  • Returned ranges are clipped to the requested calendar year.
  • Conference trips include one travel day before and one after the recorded conference dates.
  • Multiple presentation records with the same conference event name, short name, start date, and end date are treated as one conference trip range.
  • Identical public availability ranges are returned only once even when distinct source events imply the same dates and label.
  • Sick records are exposed only as type unavailable with label Unavailable; the underlying reason and notes remain private.
  • Administrative blocked events are deliberately omitted.

Known consumers: Weekly Penguin Timeline

Not exposed

  • Internal blocked-event IDs and owner metadata
  • Administrative commitments
  • The Sick category and any sickness notes or medical reason
  • Conference source IDs and internal Planning state

Contract rules

Controlled vocabularies

These values are enforced by the Research Dashboard database and form part of Public RPC v1. Consumers should not invent additional values.

Publication index

WoS-SSCIScopusWoS-ESCIBook chapterSciELO/LatindexWorking paperPreprint

Paper language

EnglishSpanishPortugueseDutchGermanFrenchItalian

Project role

Principal InvestigatorResearch AssociateConsultancy ChiefConsultant

Project status

activecompleted

Conference presentation type

Conference paperKeynoteWorkshop

Teaching role

Course ConvenorLecturerTutorThesis SupervisorExaminer

Teaching level

undergraduatemasterphd

Public availability type

winter_holidaysummer_holidaytripunavailable

Software category

ApplicationWebsiteUtilityReusable componentPackage/libraryAPI/serviceData productTemplateOther

Software development stage

AlphaBetaRelease candidateStableMaintenance

Software status

activepausedcompletedarchived

Repository visibility

publicprivate

Privacy and access

  • Anonymous access is read-only and limited to the RPC surface documented on this page.
  • The publishable key is a public client credential; service-role or secret credentials are never part of the public interface.
  • Workflow, ownership, access-control and raw activity data remain behind the authenticated Research Dashboard boundary.
  • Public contracts are versioned interfaces, not direct table schemas.