{"id":41824588,"url":"https://github.com/sasjs/fileuploader","last_synced_at":"2026-01-25T08:06:58.887Z","repository":{"id":46927117,"uuid":"316046230","full_name":"sasjs/fileuploader","owner":"sasjs","description":"A super simple SASjs app for uploading a local file to a directory on the Viya server","archived":false,"fork":false,"pushed_at":"2024-05-13T22:20:11.000Z","size":24118,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-13T23:31:10.365Z","etag":null,"topics":["sas","sasjs","sasjs-app","viya"],"latest_commit_sha":null,"homepage":"https://sasjs.io","language":"SAS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sasjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-25T20:25:25.000Z","updated_at":"2024-05-13T22:22:07.000Z","dependencies_parsed_at":"2024-05-13T23:30:38.979Z","dependency_job_id":"0290ad28-cd1c-475b-aba1-26e85715a55f","html_url":"https://github.com/sasjs/fileuploader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sasjs/fileuploader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sasjs%2Ffileuploader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sasjs%2Ffileuploader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sasjs%2Ffileuploader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sasjs%2Ffileuploader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sasjs","download_url":"https://codeload.github.com/sasjs/fileuploader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sasjs%2Ffileuploader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28748573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T07:58:02.558Z","status":"ssl_error","status_checked_at":"2026-01-25T07:57:57.153Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sas","sasjs","sasjs-app","viya"],"created_at":"2026-01-25T08:06:58.574Z","updated_at":"2026-01-25T08:06:58.881Z","avatar_url":"https://github.com/sasjs.png","language":"SAS","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/sasjs/fileuploader)\n\n# Demo SASjs File Uploader app\n\nThis is a vanilla JS demo app to show how to build a SAS-Powered file upload process.  The app has a logon screen, then an input box (so the user can provide a target directory path), and a file picker.\n\nThe file is sent to SAS where the path is verified, the file is written, and a directory listing is returned.\n\nIf the file is greater than 5mb it is sent to SAS in chunks, with a progress bar displayed.  A video demonstrating this process is available here:  https://www.youtube.com/watch?v=rf9myXovrsk\n\n![screenshot of sasjs file uploader](https://i.imgur.com/alHXcTK.png)\n\nIf the user logs out of SAS whilst an upload is in progress, then the app will prompt for credentials on the next request.  The \"redirect\" flow is implemented, which is compatible with 2FA and other more complex authentication mechanisms.\n\n## Fast Deploy\nThis app can be deployed as a streaming SAS app by running the code below.  Be\nsure to set the value of `appLoc` to your preferred parent folder location in\nmetadata (SAS 9) or SAS Drive (Viya).\n\n```sas\n%let apploc=/Public/app/fileuploader;\nfilename mc url \"https://raw.githubusercontent.com/sasjs/fileuploader/master/stream.sas\";\n%inc mc;\n```\n\nThe link to open the app will be shown in the log.\n\n\n## Alternatives\nIt is also possible to upload files using SAS Studio, into your home directory (you can set symlinks to other locations).\n\nIf your use case is simply about loading data into SAS, you might want to consider https://datacontroller.io (lets you load excel and CSV files into any SAS table or database with full audit trail - it's also free for up to 5 users).\n\n## Building from Source\n\nTo deploy this app, first install the SASjs CLI - full instructions [here](https://cli.sasjs.io/installation/).\n\nNext, run `sasjs add` to prepare your target ([instructions](https://cli.sasjs.io/add/)).\n\nThen run the below to deploy the backend (SAS) services:\n\n```\nnpm install\nsasjs cbd -t YOURTARGET\n```\n\nIf you don't have the ability to `sasjs add` due to not having access to a client / secret, you can instead run `sasjs cb` and execute the resulting `sasjsbuild/build.sas` script in SAS Studio V to create the backend services.\n\n## Frontend\n\n### Configuration\n\nOpen `index.html` and make sure the value for `appLoc` is the same as that used when deploying the backend (`sasjsconfig.json`).\n\nAlso, update the `\u003cscript\u003e` tag so that SASjs is pointing to a CDN (or copy the file from `node_modules` into the `src` folder and use a relative reference).\n\n### Deployment\n\nThe frontend (`src` folder) is deployed to your SAS Web server (`/var/www/htdocs` folder) - you can upload manually, or using the supplied NPM script in `package.json`.\n\nTo be able to run the deploy script, two environment variables need to be set:\n\n`SSH_ACCOUNT` - your SSH account, this is of the form username@domain.com\n`DEPLOY_PATH` - the path on the server where sasjs-tests will be deployed to, typically `/var/www/html/\u003csome-subfolder\u003e`.\n\nYou can run the script like so:\n\n```\nSSH_ACCOUNT=me@my-sas-server.com\nDEPLOY_PATH=/var/www/html/my-folder/file-uploader\nnpm run deploy\n```\n\n## Closing remarks\n\nIf you have any problems, please just raise an [issue](https://github.com/sasjs/fileuploader/issues/new)!  And if you find it useful, we'd appreciate a STAR.\n\nFor more information on the SASjs framework, see https://sasjs.io\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsasjs%2Ffileuploader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsasjs%2Ffileuploader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsasjs%2Ffileuploader/lists"}