table of contents
| SOLID_AUTH(1p) | User Contributed Perl Documentation | SOLID_AUTH(1p) | 
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.
| 2023-09-04 | perl v5.36.0 |