Miss any of our Open RFC calls?Watch the recordings here! »

sooperclip

1.0.6 • Public • Published

Sooperclip 1.0.6


A node.js CLI utility to offer file copy/paste between hosts...

Uses the S3 bucket of your choice for temporary storage.

Objects are stored in cheaper infrequently accessed storage and with server side encryption.

Assumes you have your AWS profile defined or a role on the instance you are running it from.

Installation:

    npm install -g sooperclip

Usage:

    clip <copy|paste> <filename>    -- copies or pastes to/from the clipboard
    clip clear                      -- clears the clipboard
    clip config                     -- configures/reconfigures sooperclip

AWS setup notes:

    If you currently have an AWS profile defined that has S3 write access you should be good to go

    If you wanted to create an IAM user/profile just for sooperclip you could add an entry to your AWS profile
    something like this.

    In your ~/.aws/credentials add a profile just for sooperclip

[sooperclip]
aws_access_key_id = <your key id>
aws_secret_access_key = <your secret>

    And grants that IAM user a specific role just for sooperclip access with a policy something like... 
    (clipboard files are prefixed with clip- so you only really need to change the bucket name)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::myclipbucket/clip-*"
        }
    ]
}

    You could do that too 


TO DO:
~~~~~~~~~~~~~~~

    - support multiple users per bucket.  Actually this is supported today but care must be taken to choose
      unique identifiers manually at setup time or you could clobber each others clipboards.   The real fix
      for this is probably AWS policy based. So if your unique identifier is your username; Something like...

    {
       "Sid": "AllowS3ActionsInUserFolder",
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:DeleteObject"
        ],
       "Effect":"Allow",
       "Resource": ["arn:aws:s3:::myclipbucket/clip-${aws:username}/*"]
    } 

    - maybe use KMS encryption with passphrase to pre-encrypt files before stored in the clipboard bucket

    - support text copy / paste and JSON copy paste

    - support direct configuration with an access & secret as an alternative to having an AWS profile defined

LOG:
~~~~~~~~~~~~~~~
    1.0.6 - added cli option to (re)configure sooperclip and enter for default value
    1.0.5 - added notes and an example AWS policy
    1.0.4 - added some error checking and infomational response
    1.0.0 - initial release 


Shameless plug
~~~~~~~~~~~~~~~
https://allthethin.gs


Install

npm i sooperclip

DownloadsWeekly Downloads

0

Version

1.0.6

License

ISC

Last publish

Collaborators

  • avatar