Provided by: solid-auth_0.91-1_all
NAME
solid_auth - A Solid management tool
SYNOPSIS
# Set your default webid export SOLID_WEBID=https://timbl.inrupt.net/profile/card#me # Authentication to a pod solid_auth authenticate # Get the http headers for a authenticated request solid_auth headers GET https://timbl.inrupt.net/inbox/ # Act like a curl command and fetch authenticated content solid_auth curl -- -X GET https://timbl.inrupt.net/inbox/ # Add some data solid_auth curl -- -X POST \ -H "Content-Type: text/plain" \ -d "abc" \ https://timbl.inrupt.net/public/ # Add a file solid_auth curl -- -X PUT \ -H "Content-Type: application/ld+json" \ -d "@myfile.jsonld" \ https://timbl.inrupt.net/public/myfile.jsonld # Set a solid base url export SOLID_REMOTE_BASE=https://timbl.inrupt.net # List all resources on some Pod path solid_auth list /public/ # Get some data solid_auth get /inbox/ # Post some data solid_auth post /inbox/ myfile.jsonld # Put some data solid_auth -f put /public/myfile.txt myfile.txt # Patch data solid_auth -f patch /public/myfile.txt.meta - <<EOF INSERT DATA { <> <http://example.org> 1234 } EOF # Create a folder solid_auth -f put /public/mytestfolder/ # Delete some data solid_auth delete /public/myfile.txt # Mirror a resource, container or tree mkdir /data/my_copy solid_auth -r mirror /public/ /data/my_copy # Upload a directory to the pod # Add the -x option to do it for real (only a test without this option) solid_auth -r upload /data/my_copy /public/ # Clean all files in a container # Add the -x option to do it for real (only a test without this option) solid_auth --keep clean /demo/ # Clean a complete container # Add the -x option to do it for real (only a test without this option) solid_auth -r clean /demo/
ENVIRONMENT
SOLID_WEBID Your WebId. SOLID_REMOTE_BASE The Base URL that is used for all delete, get, head, options post, put, patch requests. SOLID_CLIENT_ID The URL to a static client configuration. See "etc/web-solid-auth.jsonld" for an example. This file, edited for your own environment, needs to be published on some public accessible webserver.
CONFIGURATION
--webid Your WebId. --base The Base URL that is used for all delete, get, head, options post, put, patch requests. --clientid The URL to a static client configuration. See "etc/web-solid-auth.jsonld" for an example. This file, edited for your own environment, needs to be published on some public accessible webserver. --skip Skip resources that already exist (mirror). --delete Delete local files that are not in the remote container (mirror). --keep Keep containers when cleaning data (clean). --etag=STRING Only update the data when the 'Etag' header matches the given string (put,patch). E.g. use the "head" command to find the ETag of a resource : $ solid_auth head /demo/LICENSE ... ETag: "189aa19989dc47eab46c9f2e8c47d0836bb08cb09f7863cbf3cd3bb9a751be27" ... Now update the resource with ETag protection $ solid_auth \ --etag=189aa19989dc47eab46c9f2e8c47d0836bb08cb09f7863cbf3cd3bb9a751be27 \ put /demo/LICENSE LICENSE --force | -f Force overwriting existing resources (put, patch). -r Recursive (clean, mirror, upload). -x Do it for real. The commands "clean" and "upload" will run by default in safe mode. -H name=value Add a header to a request (repeatable) for "get", "post", "head", "options" and "delete".
COMMAND
authenticate Start an authentication process for your WebId. You will be presented with a URL that you need to open in a webbrowser. After a successfull login the command can be closed. The webbrowser needs to be opened on the same host as the where you where you run the solid_auth command. headers METHOD URL Return the Authentication and DPoP headers for a HTTP "METHOD" request to "URL". curl CURL-OPTS Execute a curl command with Authentication and DPoP headers added. Add a "--" option to the "CURL-OPTS" to stop solid_auth from interpreting Curl options. list URL List the resources in a LDP container at URL. mirror [-rx] [--skip] [--delete] URL DIRECTORY Mirror the contents of a container to a local directory. Optional provide "-r" option for recursive mirror. upload [-rx] DIRECTORY URL Upload a directorty to a container. Optional provide "-r" option for recursive upload. With the "-x" option, the command will run in demo mode. clean [-rx] [--keep] URL Clean all resources in a directory. Optional provide "-r" option for recursive clean. With the "-x" option, the command will run in demo mode. With the "--keep" options all container will be kept. get URL Return the response of a HTTP GET request to URL. post URL FILE [MIMETYPE] Return the HTTP Message of a HTTP POST request of the FILE with MIMETYPE. Uses libmagic to guess the mimetype. put URL [FILE] [MIMETYPE] Return the HTTP Message of a HTTP PUT request of the FILE with MIMETYPE. Uses libmagic to guess the mimetype. When the URL ends with a slash (/), then a new container will be created. patch URL FILE|SPARQL Send the contents of a SPARQL patch file or string to a URL. Return the HTTP Message of the HTTP PATCH request to the URL. head URL Return the HTTP Header of a HTTP HEAD request to URL. head OPTIONS Return the HTTP Header of a HTTP OPTIONS request to URL. delete URL Return the HTTP Message of a HTTP DELETE request to URL. id_token Show the contents of the JWT id token. access_token Show the contents of the JWT access token.
INSPIRATION
This was very much inspired by the Python solid-flask code by Rai <http://agentydragon.com> at <https://gitlab.com/agentydragon/solid-flask>, and Jeff Zucker's <https://github.com/jeff-zucker> Solid-Shell at <https://www.npmjs.com/package/solid-shell>.
COPYRIGHT AND LICENSE
This software is copyright (c) 2021 by Patrick Hochstenbach. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.