{#
SPDX-License-Identifier: GPL-3.0-or-later OR CC-BY-SA-4.0
Documentation page describing the concept of repositories in Haketilo.
This file is part of Hydrilla&Haketilo.
Copyright (C) 2022 Wojtek Kosior
Dual licensed under
* GNU General Public License v3.0 or later and
* Creative Commons Attribution Share Alike 4.0 International.
You can choose to use either of these licenses or both.
I, Wojtek Kosior, thereby promise not to sue for violation of this
file's licenses. Although I request that you do not make use of this
code in a proprietary work, I am not going to enforce this in court.
#}
{% extends "doc_base.html.jinja" %}
{% block title %} Repositories {% endblock %}
{% block main %}
{{ big_heading('Repositories in Haketilo') }}
{% call section() %}
{% call paragraph() %}
{{ doc_page_link('Packages', 'packages') }} used to alter sites' behavior
can be obtained by users from Hydrilla repositories. The repositories to
use can be configured from the
{{ hkt_link('relevant Haketilo UI page', 'repos.repos') }}. When Haketilo
is first run, it only has one entry on that page - the official Hydrilla
repository with fixes for sites that normally rely on (often proprietary)
JavaScript.
{% endcall %}
{% endcall %}
{% call section() %}
{{ medium_heading('Adding') }}
{% call paragraph() %}
Before experimenting with third-party repositories please bear in mind
that a hostile Haketilo package can cause real harm.
Scripts injected by Haketilo have access to data on the page, including
cookies and passwords you may enter.
Do make sure the repositories you are using are trustworthy.
{% endcall %}
{% call paragraph() %}
On the {{ hkt_link('repository addition page', 'repos.add_repo') }} the
user is expected to supply 2 pieces of information.
The URL of the repository and its
name.
The URL is supposed to be provided by repository owner.
Then name is only used locally and can be chosen by the user.
Allowed are most visible ASCII characters, with possible spaces in-betwen.
No 2 repositories can use the same name.
{% endcall %}
{% call paragraph() %}
As of Haketilo version 3.0 the user does not need to provide any
authentication data (e.g. private keys) because cryptographic signing of
packages is not yet supported. This may change in the future.
{% endcall %}
{% endcall %}
{% call section() %}
{{ medium_heading('Removing') }}
{% call paragraph() %}
A repository can be deleted at any time. When this happens,
{% endcall %}
{% call unordered_list() %}
{% call list_entry() %}
its packages that were in use (e.g. were enabled) retain their state,
{% endcall %}
{% call list_entry() %}
its packages that were installed but not in use become
orphans and can be removed from the
{{ hkt_link('settings page', 'home.home') }} and
{% endcall %}
{% call list_entry() %}
its packages that were not installed are forgotten.
{% endcall %}
{% endcall %}
{% call paragraph() %}
A deleted repository remains viewable from the
{{ hkt_link('repositories management page', 'repos.repos') }} for as long
as some of its packages remain installed.
{% endcall %}
{% endcall %}
{% call section() %}
{{ medium_heading('Operating') }}
{% call paragraph() %}
Before repository's contents become viewable on the
{{ hkt_link('packages listing page', 'items.packages') }}, it needs to be
refreshed.
As of Haketilo 3.0-beta1, this action needs to be triggered manually by
the user from the configuration page of that repository.
Subsequent refreshals are needed every time the user wants to pull package
updates.
{% endcall %}
{% call paragraph() %}
Repository's name and URL can also be changed from its configuration page.
The same requirements for their format hold as when adding a new
repository.
{% endcall %}
{% endcall %}
{% call section() %}
{{ medium_heading('Local items') }}
{% call paragraph() %}
When the users installs some additional packages without using a
repository, these are considered local packages.
A special "Local items" entry then appears on the
{{ hkt_link('repositories management page', 'repos.repos') }}. Local
packages that are not in use are automatically considered orhpans.
{% endcall %}
{% endcall %}
{% endblock %}