You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Record the provenance of the remaining bundled images #8984
Part of #8800. Besides the files covered by the other sub-issues, about 210 bundled images have no recorded source:
189 PNGs in frontend/src/assets/operator_images/
the Tutor_* GIFs and JPEG, card_background.jpg, workflow_gui.png, texera_email_screenshot.png and the diagrams in notebook_migration_tool/, all in frontend/src/assets/
the Texera logos in frontend/src/assets/logos/, frontend/src/favicon.ico and docs/system-screenshot.png
For each file:
if the project made it (a screenshot, the Texera logo, a diagram), record that;
if it is third-party under a Category A licence, record the source and add it to LICENSE and frontend/LICENSE-binary. For example, ArrowSource.png, AsterixDBSource.png and HdfsFileScan.png use the Apache Arrow, AsterixDB and Hadoop logos;
otherwise, replace it with a project-made icon or a similar icon under a Category A licence.
Some icons look like stock artwork, for example EmojiSentiment.png, NlpSentiment.png, SentimentAnalysis.png, HuggingFaceSpamSMSDetection.png and WordCloud.png. Those are a good place to start.
As discussed in #8800, if this takes weeks the release can ship with a DISCLAIMER-WIP that lists it as a known issue, but the work still has to be finished.
I went through all 236 image and media files tracked in the repository, using the commit that wrote each file's current content, embedded metadata, the description and comments of the PR that added it, and a visual check. Results are recorded in a PROVENANCE.yaml manifest at the repository root, one entry per file with its origin (project-made / third-party / unknown), source, licence and the evidence. I kept the format close to what #8985 proposes so its check can consume it. Manifest: https://github.com/CaroFernando/texera/blob/feat/image-provenance/PROVENANCE.yaml (PR to follow)
Summary
Origin
Files
Notes
project-made
31
Texera logos, UI screenshots and tutorial GIFs, the UDF icons redrawn in #5686, and the sample media / comment icon described as original in #5568, #8804, #8987
third-party
15
8 already in LICENSE (SVGRepo, Apple, ORCID, Material Symbols / Jupyter diagrams); 7 need action, below
unknown
190
13 of these are the vendor logos handled by #8999, leaving 177
Third-party files that need action
SankeyDiagram.png: Adobe Stock asset 873461140, per its embedded metadata. Must be replaced.
TypeCasting.png: Noun Project icon 2103686, named in Typecasting Operator #929. Noun Project icons are usually CC BY 3.0 (Category A with attribution), but the author and licence still need confirming; replacing it may be simpler.
ArrowSource.png, AsterixDBSource.png, HdfsFileScan.png: Apache Arrow / AsterixDB / Hadoop logos. Need LICENSE and frontend/LICENSE-binary entries.
frontend/src/favicon.ico: the Angular CLI default favicon from 2018. It is not shipped (angular.json only copies src/assets), so I propose deleting it.
The 177 unknowns
They trace back to 77 commits, and two of them account for almost half:
34 icons first added in 2017 to textdb-angular-gui/thirdparty/images/. The folder name says they are external, so I plan to replace them rather than search.
The remaining ~92 come from ~75 operator PRs, 1–2 icons each.
@mengw15's question in #8800 about whether AI-generated icons are acceptable replacements is still unanswered. It matters for step 3. Until there is an answer, I'll stick to typographic icons rendered with a CC0 font, as #8999 does, and icons from Category A libraries.
Very nice investigation, Luis. The fact that 85 of the icons can be traced to a shared provenance is a great find. That's like half of the task right there. The other 92 is still a lot, but half of a lot is better than a whole lot :)
Luis, Meng and I caught each other in the hall, so we ended up having a little chat about this.
We talked a bit about the history of each operator's icons. Meng mentioned the main way these icons came in was very distributed. A typical immigration project for many new contributors was to create an operator, and as part of that they had to add an icon for it. At that time the licensing was not being closely scrutinized. So, for these icons, they are certainly suspect- people would likely just look on Google Images or something.
Then we discussed a bit about what to do about it. We discussed the complications of using a model to create the icons. I mentioned that it isn't out of the question, but it is kind of a grey area. I pointed out that the very same thing can happen with LLMs when coding (e.g. it could produce more or less verbatim some well known implementation of an algorithm). This was for the purpose of highlighting that it could be acceptable just as it is for code, but you always must scrutinize the output of any generated asset and clearly mark that it is one (and hopefully information about how it was generated)
Based on all of this, I mentioned that my general preference for addressing the remaining icons that we don't know the copyright status of is something like this (from most preferred to least):
If we can find icons used in other Apache projects that represent similar things (e.g. database operations) we can use them. This might not be a ton of work, because a lot of them are in the same category, so some other project may have either made the icons themselves or clearly stated the license of it. The same thing applies if we can find some icon set with a compatible license.
If we cannot find anything, it may be permissible to generate some of the icons. It needs to be closely scrutinized and marked as such though.
We can DISCLAIMER-WIP, but I stated that this is "kicking the can"; it's only really something that can unblock the release but it doesn't get us any closer to actually solving the problem.
If anyone has other thoughts about it please chime in.
I'm not opposed to the generation for things that seem fiddly; we still have to look at each icon and the prompt though to make sure it's not regurgitating something that is copyrighted.
Activity
CaroFernando commentedon Oct 18, 2026
/take
CaroFernando commentedon Oct 18, 2026
Status update on the audit.
I went through all 236 image and media files tracked in the repository, using the commit that wrote each file's current content, embedded metadata, the description and comments of the PR that added it, and a visual check. Results are recorded in a
PROVENANCE.yamlmanifest at the repository root, one entry per file with its origin (project-made/third-party/unknown), source, licence and the evidence. I kept the format close to what #8985 proposes so its check can consume it. Manifest: https://github.com/CaroFernando/texera/blob/feat/image-provenance/PROVENANCE.yaml (PR to follow)Summary
LICENSE(SVGRepo, Apple, ORCID, Material Symbols / Jupyter diagrams); 7 need action, belowThird-party files that need action
SankeyDiagram.png: Adobe Stock asset 873461140, per its embedded metadata. Must be replaced.DumbbellPlot.png: Freepik icon, named as the source in Add DumbbellPlot Viz Operator #2149. Must be replaced.TypeCasting.png: Noun Project icon 2103686, named in Typecasting Operator #929. Noun Project icons are usually CC BY 3.0 (Category A with attribution), but the author and licence still need confirming; replacing it may be simpler.ArrowSource.png,AsterixDBSource.png,HdfsFileScan.png: Apache Arrow / AsterixDB / Hadoop logos. NeedLICENSEandfrontend/LICENSE-binaryentries.frontend/src/favicon.ico: the Angular CLI default favicon from 2018. It is not shipped (angular.jsononly copiessrc/assets), so I propose deleting it.The 177 unknowns
They trace back to 77 commits, and two of them account for almost half:
textdb-angular-gui/thirdparty/images/. The folder name says they are external, so I plan to replace them rather than search.Plan
Following what was agreed in #8800:
SankeyDiagram.pngandDumbbellPlot.png, add the missingLICENSEentries, remove the unused favicon, and merge the manifest.DISCLAIMER-WIProute agreed in Third-party image assets (Icons8 icon, vendor logos) not covered by LICENSE #8800, pointing at theunknownentries of the manifest as the known issue. As @pjfanning noted, this does not cover anything known to be non-Category-A, which is why step 1 comes first.Open question
@mengw15's question in #8800 about whether AI-generated icons are acceptable replacements is still unanswered. It matters for step 3. Until there is an answer, I'll stick to typographic icons rendered with a CC0 font, as #8999 does, and icons from Category A libraries.
parshimers commentedon Oct 21, 2026
Very nice investigation, Luis. The fact that 85 of the icons can be traced to a shared provenance is a great find. That's like half of the task right there. The other 92 is still a lot, but half of a lot is better than a whole lot :)
docs(licensing): record the provenance of every bundled image in PROV…
parshimers commentedon Oct 23, 2026
Luis, Meng and I caught each other in the hall, so we ended up having a little chat about this.
We talked a bit about the history of each operator's icons. Meng mentioned the main way these icons came in was very distributed. A typical immigration project for many new contributors was to create an operator, and as part of that they had to add an icon for it. At that time the licensing was not being closely scrutinized. So, for these icons, they are certainly suspect- people would likely just look on Google Images or something.
Then we discussed a bit about what to do about it. We discussed the complications of using a model to create the icons. I mentioned that it isn't out of the question, but it is kind of a grey area. I pointed out that the very same thing can happen with LLMs when coding (e.g. it could produce more or less verbatim some well known implementation of an algorithm). This was for the purpose of highlighting that it could be acceptable just as it is for code, but you always must scrutinize the output of any generated asset and clearly mark that it is one (and hopefully information about how it was generated)
Based on all of this, I mentioned that my general preference for addressing the remaining icons that we don't know the copyright status of is something like this (from most preferred to least):
If anyone has other thoughts about it please chime in.
Yicong-Huang commentedon Oct 29, 2026
Shall we just go with the easier and fastest way: just generate some icons? We can have the copyright of them, and that will be the clean.
chenlica commentedon Oct 29, 2026
@CaroFernando As you are working on this task, can you chime in?
parshimers commentedon Oct 29, 2026
I'm not opposed to the generation for things that seem fiddly; we still have to look at each icon and the prompt though to make sure it's not regurgitating something that is copyrighted.