Open-EO / Open-EO/openeo-python-client

Eliminate fontawesome.com dependency

Open
#713 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

architecture configuration technical debt
Dominant language
Python
Stars
217
Forks
56
Avg merge
1d 22h
Merged PRs (30d)
2

Description

In the jupyter notebook integration, we inject a request to fontawesome.com:

https://github.com/Open-EO/openeo-python-client/blob/83194d759f94fa21f5e26f692f8a37f49db9af80/openeo/internal/jupyter.py#L132

I am not a lawyer, but as far as I understand e.g. https://law.stackexchange.com/questions/98873/gdpr-compliance-font-awesome, this might be a source of privacy/GDPR issues for entities that provide hosted openEO environments.

Same problem probably with https://github.com/Open-EO/openeo-python-client/blob/83194d759f94fa21f5e26f692f8a37f49db9af80/openeo/internal/jupyter.py#L6

Regardless of the GDPR/privacy issue, it's also not ideal that we have such hardcoded URLs in the package, without any means to override/disable them (e.g. because they stop working for some reason, or, worse, get compromised, like with the polyfill.io domain attack last year)

How can we improve the situation?

  • find GDPR-friendly alternatives?
  • reduce/eliminate the need for external hosting of these resources?
    • E.g. can the fonts be replaced with embedded SVG?
    • Or are there ways to allow the user to easily "self-host" on their jupyter environment?
  • make the URLs configurable is some way to eliminate the hardcoding problem

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading openeo/internal/jupyter.py at lines 6 and 132 to inventory the fontawesome.com requests and how the notebook integration uses them. Compare the proposed alternatives—local or embedded resources, self-hosting, and configurable URLs—and define completion as removing the hardcoded dependency while preserving the integration and documenting the chosen approach.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter, python
Domain
developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.