Commit graph

25 commits

Author SHA1 Message Date
Joey Hess
0f998f0698
improve 2025-03-11 12:54:34 -04:00
Joey Hess
0477a8d098
add INPUT-REQUIRED
Used by git-annex-compute-singularity to make addcomputed --fast work.

Also, simplified git-annex-compute-singularity; there is no need to hard
link the container into place. singularity does not care about the
extension of the container, so can just pass it the annex object file.
2025-03-11 11:46:31 -04:00
Joey Hess
b02aca8627
reorg and expand security section 2025-03-11 11:12:59 -04:00
Joey Hess
e0b7653495
added git-annex-compute-singularity
And implemented SANDBOX, which it needs.
2025-03-10 16:41:26 -04:00
Joey Hess
7bda5f470c
document output files must be regular files 2025-03-10 14:15:07 -04:00
Joey Hess
ed51924211
redirect command stdout to stderr
Otherwise it will be interpreted as compute program protocol
2025-03-07 16:01:27 -04:00
Joey Hess
2c6dce83de
make OUTPUT subdirs
Simplifies compute programs.
2025-03-07 14:57:12 -04:00
Joey Hess
81ce4264df
compute: add response to OUTPUT
This allows rejecting output filenames that are outside the repository,
and also handles converting eg "-foo" to "./-foo" to prevent a command
that it's passed to interpreting the output filename as a dashed option.
2025-03-07 14:47:34 -04:00
Joey Hess
825a648670
prefix output with ./ in example 2025-03-06 14:42:07 -04:00
Joey Hess
b835c8c937
no longer a draft 2025-03-06 14:29:07 -04:00
Joey Hess
a2fc471e14
safer git sha object filename
Rather than use the filename provided by INPUT, which could come from user
input, and so could be something that looks like a dashed parameter,
use a .git/object/<sha> filename.

This avoids user input passing through INPUT and back out, with the file
path then passed to a command, which could do something unexpected with
a dashed parameter, or other special parameter.

Added a note in the design about being careful of passing user input to
commands. They still have to be careful of that in general, just not in
this case.
2025-03-04 14:54:13 -04:00
Joey Hess
f32d2aecce
autoenable security for compute special remote
Added annex.security.autoenable-compute-programs and only allow
autoenabling special remotes that use compute programs on that list.

The reason this is needed is a user might have some compute programs
that are less safe to use than others. They might want to use an unsafe
one only with one repository, where they are the only committer or other
committers are trusted. They might be ok with others being used by any
repository, and if so they can add them to the list.

Another reason would be a user who has installed a compute program by
accident. Eg, it might be included with git-annex at some point, or
pulled in by some dependency. That user doesn't necessarily want that
compute program to be used in an autoenabled special remote.
2025-03-03 15:52:56 -04:00
Joey Hess
2b8428bb17
wording 2025-02-25 17:26:28 -04:00
Joey Hess
f8c7cea019
pdate demo program
needed a mkdir
2025-02-25 17:23:38 -04:00
Joey Hess
2e1fe1620e
handle comutations in subdirs of the git repository
Eg, a computation might be run in "foo/" and refer to "../bar" as an
input or output.

So, the subdir is part of the computation state.

Also, prevent input or output of files that are outside the git
repository. Of course, the program can access any file on disk if it
wants to; this is just a guard against mistakes. And it may also be
useful if the program comunicates with something less trusted than it,
eg a container image, so input/output files communicated by that are not
the source of security problems.
2025-02-25 15:08:38 -04:00
Joey Hess
921850d05c
support addcomputed --fast
This complicates the interface but it's still simpler to understand than
the old interface.
2025-02-24 13:48:46 -04:00
Joey Hess
490174b068
new compute program interface
This is much more flexible, and also simpler to understand.
2025-02-24 12:44:20 -04:00
Joey Hess
b804f8a3cc
update 2025-02-21 15:09:46 -04:00
Joey Hess
e897229088
wip 2025-02-20 17:23:15 -04:00
Joey Hess
4f3d9f8115
update 2025-02-20 13:27:59 -04:00
Joey Hess
c1b53dbbd0
wip 2025-02-20 13:27:47 -04:00
Joey Hess
ace9944d1c
add REPRODUCIBLE 2025-02-19 14:16:36 -04:00
Joey Hess
f52385f63d
optional and required inputs and some other changes 2025-02-19 12:47:32 -04:00
Joey Hess
f4c3fdeaed
improved draft design 2025-02-18 15:46:47 -04:00
Joey Hess
e6e69f8f93
draft 2025-02-13 16:12:07 -04:00