Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
31567a3
implemented a file system permission cleaner and hooked it up in each…
Futurecomputerfixer Oct 21, 2025
73b747b
auto infer group name from path
Futurecomputerfixer Oct 21, 2025
5308c40
modify ssh
Futurecomputerfixer Nov 2, 2025
23ed6c2
fix to test on gamma
Futurecomputerfixer Nov 2, 2025
7a6061b
Implement SSH key management and Unix user/group system
Futurecomputerfixer Nov 2, 2025
8e71819
testing
Futurecomputerfixer Nov 4, 2025
55788af
add a new daemon container
Futurecomputerfixer Nov 10, 2025
214ebef
fix bugs
Futurecomputerfixer Nov 10, 2025
af54293
fix bugs ++
Futurecomputerfixer Nov 11, 2025
1d31d75
add hint for ssh key creation
Futurecomputerfixer Nov 11, 2025
2551e51
add symlink
Futurecomputerfixer Nov 12, 2025
325bae0
testing ec2, add support on autolab side
20wildmanj Nov 14, 2024
aa12873
Filesystem mapping + EC2 autograder changes
Futurecomputerfixer Dec 17, 2025
35bc7ec
fix group
Futurecomputerfixer Dec 17, 2025
266d150
fix groupa
Futurecomputerfixer Dec 17, 2025
2f3897b
fix groupa
Futurecomputerfixer Dec 17, 2025
0eca6f1
fix groupa
Futurecomputerfixer Dec 17, 2025
317feb1
fix groupa
Futurecomputerfixer Dec 17, 2025
d43ee75
fix groupa
Futurecomputerfixer Dec 17, 2025
fd4fc5c
fix groupa
Futurecomputerfixer Dec 17, 2025
9ccc99a
fix groupa
Futurecomputerfixer Dec 17, 2025
bdec585
fix groupa
Futurecomputerfixer Dec 18, 2025
48ec3a3
fix groupa
Futurecomputerfixer Dec 18, 2025
82addd1
fix groupa
Futurecomputerfixer Dec 18, 2025
3e86a34
add support for EC2 settings in Autolab
20wildmanj Dec 6, 2024
d43b4e1
fix issue with autograder initialization
20wildmanj Dec 6, 2024
20cba9e
fix groupa
Futurecomputerfixer Dec 18, 2025
4d45276
fix groupa
Futurecomputerfixer Dec 18, 2025
6d62851
fix groupa
Futurecomputerfixer Dec 18, 2025
25c4c05
fix groupa
Futurecomputerfixer Dec 18, 2025
40d398d
fix groupa
Futurecomputerfixer Dec 18, 2025
adf4012
fix groupa
Futurecomputerfixer Dec 18, 2025
65fd7d2
fix groupa
Futurecomputerfixer Dec 18, 2025
5910b83
fix groupa
Futurecomputerfixer Dec 18, 2025
9fbf5d3
fix groupa
Futurecomputerfixer Dec 18, 2025
f0be93f
editing ssh commands
KesterTan Feb 1, 2026
5bbdab8
added service user to classes
KesterTan Feb 6, 2026
18d9fa4
attempt to fix course permissions
KesterTan Feb 9, 2026
73326f8
unix file system scanner
KesterTan Feb 9, 2026
224f4ee
install assessment
KesterTan Feb 9, 2026
fbbd098
Revert "install assessment"
KesterTan Feb 9, 2026
ade67b8
Revert "unix file system scanner"
KesterTan Feb 9, 2026
b0b6f90
Revert "attempt to fix course permissions"
KesterTan Feb 9, 2026
4367517
make user9999 always an instructor
KesterTan Feb 9, 2026
f7c02b0
test adding user9999 to all groups
jhs-panda Feb 16, 2026
6bc3097
remove integration bundle
KesterTan Feb 16, 2026
f7ebb91
fix user groups
KesterTan Feb 16, 2026
930c792
remove check of local membership
KesterTan Feb 16, 2026
16accef
fix script to have both local and group
KesterTan Feb 22, 2026
0942db0
tranfer ownership script
KesterTan Feb 22, 2026
1467e90
CAs should not be able to ssh
KesterTan Feb 23, 2026
e56f2a2
Add clarification about course unix group inclusions.
jhs-panda Feb 23, 2026
1c25783
modify ssh commands
jhs-panda Mar 13, 2026
f79c640
add provision and deprovision of keys
KesterTan Mar 15, 2026
3459b4b
prevent group add error
KesterTan Mar 15, 2026
1a3751b
fix typo in ssh commands
jhs-panda Mar 16, 2026
3cbcff4
fixed ca and instructor ssh perms
KesterTan Mar 16, 2026
6fef652
Merge branch 'joy-testing' of github.com:autolab/Autolab into joy-tes…
KesterTan Mar 16, 2026
f11cf5a
sponsors and contact us page
KesterTan Mar 20, 2026
bf1985d
try to add both app and user9999
KesterTan Mar 31, 2026
ae299f0
list dir to unix ops
KesterTan Mar 31, 2026
dde8d55
fix unix ops delegation
KesterTan Mar 31, 2026
654ddbc
change delegate parsing
KesterTan Mar 31, 2026
d713dcf
mkdir over to unixops
KesterTan Mar 31, 2026
26a3d6e
formatting
KesterTan Mar 31, 2026
0e20a24
should delegate during perm error
KesterTan Mar 31, 2026
d86446c
restrict dump yaml
KesterTan Mar 31, 2026
929e7fd
yaml read file delegate to unix ops
KesterTan Mar 31, 2026
7f6fdc6
is file delagated to unix ops
KesterTan Mar 31, 2026
48580dd
dump yaml to delegate
KesterTan Mar 31, 2026
4a2ec12
conversion of pathname
KesterTan Mar 31, 2026
cf053f3
load config to delegate
KesterTan Mar 31, 2026
19ec615
guard against empty file read from delegate
KesterTan Mar 31, 2026
3a80291
try reload config file with fallback
KesterTan Mar 31, 2026
b8bf6fc
handin directory exists delegate
KesterTan Mar 31, 2026
dbfd6bb
bulk email and delegation of read writeup
KesterTan Mar 31, 2026
f9c3c81
delegate submission to unix ops
KesterTan Mar 31, 2026
e1507dd
unable to read files and submit files
KesterTan Mar 31, 2026
4086385
Submission unviewable
KesterTan Mar 31, 2026
c39c7ea
Merge branch 'ec2-testing' into joy-testing
KesterTan Apr 3, 2026
5d51a8a
check if use_access_key exists
KesterTan Apr 3, 2026
b6dd7cb
test modified symlink
jhs-panda Apr 6, 2026
316c9c7
try test modified symlink fix
jhs-panda Apr 6, 2026
e454984
update permissions when ssh key changes/user role changes
jhs-panda Apr 6, 2026
a16b7e5
add cleanup step for symlinks
jhs-panda Apr 6, 2026
c9fe6a8
try fix symlink
jhs-panda Apr 6, 2026
f0d9b52
add log statement to debug
jhs-panda Apr 6, 2026
7604452
modify unix_ops_daemon
jhs-panda Apr 6, 2026
af85d8d
test file transfer change
jhs-panda Apr 6, 2026
aceeb2c
undo prev changes
jhs-panda Apr 6, 2026
a42cfe5
try new change
jhs-panda Apr 6, 2026
cd424a9
revert changes
jhs-panda Apr 6, 2026
4745ff9
test new change
jhs-panda Apr 6, 2026
c91ea2f
try new fix
jhs-panda Apr 6, 2026
9bf1ebf
try new fix
jhs-panda Apr 6, 2026
98132ef
try new fix
jhs-panda Apr 6, 2026
2c9b708
fix circular dependency
jhs-panda Apr 6, 2026
cd50c21
try to fix for all except admin
jhs-panda Apr 6, 2026
1424f70
remove user's directory once it has no courses
jhs-panda Apr 6, 2026
aff61d7
handle cleanup for deleted users
jhs-panda Apr 6, 2026
10de804
reverse unix group deletion
jhs-panda Apr 6, 2026
3f916ea
change symbolic link ownership
jhs-panda Apr 6, 2026
010cc1f
try to fix cd update issue
jhs-panda Apr 6, 2026
57e5039
try to fix cd update issue
jhs-panda Apr 6, 2026
518216c
fix circular looping
jhs-panda Apr 6, 2026
d29c495
try to fix circular looping
jhs-panda Apr 6, 2026
2a00234
fix file access
jhs-panda Apr 6, 2026
effc4af
undo file access changes
jhs-panda Apr 6, 2026
5997b18
access key
KesterTan Apr 7, 2026
296ebaa
Merge branch 'joy-testing' of github.com:autolab/Autolab into joy-tes…
KesterTan Apr 7, 2026
a362952
attempt to fix file perms
jhs-panda Apr 7, 2026
67d70f3
Merge branch 'joy-testing' of https://github.com/autolab/Autolab into…
jhs-panda Apr 7, 2026
e568c46
instance type guards
KesterTan Apr 7, 2026
a677e9b
Merge branch 'joy-testing' of https://github.com/autolab/Autolab into…
jhs-panda Apr 7, 2026
2461b9e
fixed migrations
KesterTan Apr 7, 2026
1237ce2
Merge branch 'joy-testing' of github.com:autolab/Autolab into joy-tes…
KesterTan Apr 7, 2026
d82513f
format error
KesterTan Apr 7, 2026
53241e4
create parents if it does not exist
KesterTan Apr 7, 2026
2243813
course creation delegate
KesterTan Apr 7, 2026
61988ba
rb sys delegate
KesterTan Apr 7, 2026
0264cc2
list dir paths to delegate
KesterTan Apr 7, 2026
7cc883a
fallback to list_dir for path exists
KesterTan Apr 7, 2026
8bf6c50
fix for view submission
KesterTan Apr 7, 2026
395cf37
fix view for submissions controller
KesterTan Apr 7, 2026
11ec469
delegate reading to unix
KesterTan Apr 7, 2026
e86ea14
more archive read paths to be delagted
KesterTan Apr 7, 2026
c0109c2
fix file manager
KesterTan Apr 7, 2026
2a5647d
delete feedback and path access fallbacks
KesterTan Apr 7, 2026
0772256
delegate delete and move to unix ops
KesterTan Apr 7, 2026
b671b64
add delete and move path to unix ops
KesterTan Apr 7, 2026
80710f3
only show ssh part if instructor
jhs-panda Apr 7, 2026
9daefbb
try modifying users list breadcrumb
jhs-panda Apr 7, 2026
4405c27
modify "Users List" view to look the same as when it has a link
jhs-panda Apr 7, 2026
7a203f2
modify symlinks to handle admin properly
jhs-panda Apr 7, 2026
f803f86
additional details for uploading job
KesterTan Apr 7, 2026
7197df9
fallback for tango upload
KesterTan Apr 7, 2026
511b85f
allow for non empty feedback without autograder
KesterTan Apr 7, 2026
6c2abf4
debugging for autograding feedback
KesterTan Apr 13, 2026
b7ba379
delegated write of feedback to unix ops
KesterTan Apr 14, 2026
c737e52
view feedback delegate
KesterTan Apr 14, 2026
654ea16
add description clarification
jhs-panda Apr 14, 2026
e4eb5ca
more unix ops delegation and documentation
KesterTan Apr 15, 2026
162013e
Merge branch 'ec2-testing' into joy-testing
KesterTan Apr 15, 2026
9626eac
fix autograder upload errors
KesterTan Apr 15, 2026
2010b15
Merge branch 'joy-testing' of github.com:autolab/Autolab into joy-tes…
KesterTan Apr 15, 2026
ffad330
debugging for saving autograder
KesterTan Apr 15, 2026
36844e7
autograder length increased
KesterTan Apr 15, 2026
5c27feb
delegate list assessment dirs
KesterTan Apr 15, 2026
0d5316c
upload uses delegate
KesterTan Apr 15, 2026
9aad3db
disallow duplicate keys across all users
jhs-panda Apr 16, 2026
bbb6b08
distinguish between duplicates for current user and copies from other…
jhs-panda Apr 16, 2026
e519f58
remove ssh access for user once account deleted (keep unix account on…
jhs-panda Apr 16, 2026
49be028
revert change
jhs-panda Apr 16, 2026
52f2de1
add logic to wipe ssh access once account deleted
jhs-panda Apr 16, 2026
ca18d52
try to prevent unix account creation for tas
jhs-panda Apr 16, 2026
f284eb2
authorized false by default
KesterTan Apr 16, 2026
a951f19
Merge branch 'joy-testing' of github.com:autolab/Autolab into joy-tes…
KesterTan Apr 16, 2026
2026179
export delegate
KesterTan Apr 16, 2026
adb5490
add unique unix_user column to users table
jhs-panda Apr 17, 2026
f5e32b1
attempt to fix non-unique ssh login issue
jhs-panda Apr 17, 2026
e5f2d51
push unix_user database migration file
jhs-panda Apr 17, 2026
c6e73ec
load dir to tar to delegate
KesterTan Apr 17, 2026
f309368
Merge branch 'joy-testing' of github.com:autolab/Autolab into joy-tes…
KesterTan Apr 17, 2026
b227e14
course directory name
KesterTan Apr 17, 2026
0df76a6
clean up lint issues
jhs-panda Apr 17, 2026
dc1b0bd
Merge branch 'joy-testing' of https://github.com/autolab/Autolab into…
jhs-panda Apr 17, 2026
125dcfb
clean up lint issues
jhs-panda Apr 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@ Autolab is released under the [Apache License 2.0](http://opensource.org/license

Please feel free to use Autolab at your school/organization. If you run into any problems, you can reach the core developers at `autolab-dev@andrew.cmu.edu` and we would be happy to help. On a case-by-case basis, we also provide servers for free. (Especially if you are an NGO or small high-school classroom)


## Changelog

### [v3.0.0](https://github.com/autolab/Autolab/releases/tag/v3.0.0) (2024/07/24) UI-based deployment configuration, Simple File Manager, Export / Import Course, Tango, Grading Improvements
Expand Down
46 changes: 27 additions & 19 deletions app/assets/javascripts/file_manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ function rename(path) {
$.ajax({
url: "/file_manager/" + rel_path,
type: "PUT",
data: { new_name: new_name, relative_path: rel_path},
data: { new_name: new_name, relative_path: rel_path },
success: function(data) {
console.log(`Renamed: ${rel_path}`)
location.reload();
Expand All @@ -19,12 +19,21 @@ function deleteSelected(path) {
$.ajax({
url: path,
type: "DELETE",
success: function () {
dataType: "json",
headers: {
"Accept": "application/json"
},
success: function(response) {
if (response && response.success === false) {
reject(response.error || "Delete failed");
return;
}
console.log(`Deleted: ${path}`);
resolve();
},
error: function (xhr, status, error) {
reject(error);
error: function(xhr, status, error) {
const message = (xhr && xhr.responseJSON && xhr.responseJSON.error) ? xhr.responseJSON.error : error;
reject(message);
}
});
})
Expand All @@ -38,7 +47,7 @@ function downloadSelected(path) {
data: {
path: path
},
success: function (data) {
success: function(data) {
let blob = new Blob([data], { type: 'application/x-tar' });
let url = URL.createObjectURL(blob);
let a = document.createElement('a');
Expand All @@ -53,7 +62,7 @@ function downloadSelected(path) {
console.log(`Downloaded: ${data.filename}`);
resolve();
},
error: function (xhr, status, error) {
error: function(xhr, status, error) {
console.error(`Failed to download ${path}: ${error}`);
reject(error);
}
Expand All @@ -76,11 +85,11 @@ function uploadFile(file, path, name) {
data: formData,
contentType: false,
processData: false,
success: function () {
success: function() {
console.log("Uploaded file successfully");
resolve();
},
error: function (xhr, status, error) {
error: function(xhr, status, error) {
console.error(`Failed to upload file: ${error}`);
reject(error);
}
Expand All @@ -98,14 +107,14 @@ function uploadAllFiles(path) {
}
if (files.length > 0) {
Promise.all(uploadPromises)
.then(() => {
alert("All files uploaded successfully.");
location.reload();
})
.catch((error) => {
alert("Some files failed to upload successfully. Ensure that you are not in the root directory, the file is smaller than 1 GB, and does not already exist.");
location.reload();
});
.then(() => {
alert("All files uploaded successfully.");
location.reload();
})
.catch((error) => {
alert("Some files failed to upload successfully. Ensure that you are not in the root directory, the file is smaller than 1 GB, and does not already exist.");
location.reload();
});
} else {
console.log('No files selected.');
}
Expand All @@ -130,8 +139,7 @@ function createFolder(path) {
})
.catch((error) => {
alert("Failed to create folder. Check that you are not in the root directory and that the tile/folder does not already exist.");
})
;
});
}
}

Expand Down Expand Up @@ -219,4 +227,4 @@ document.addEventListener('DOMContentLoaded', function() {
$(".check").click(function() {
handleSelectionChange();
})
});
});
10 changes: 10 additions & 0 deletions app/assets/stylesheets/_contact.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.contact-page {
.contact-card .card-content .card-title {
display: flex;
align-items: center;
gap: 0.2rem;
}
.contact-card .card-content .card-title .contact-icon {
font-size: 1.5rem;
}
}
4 changes: 3 additions & 1 deletion app/assets/stylesheets/application.scss
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
/* For the materialize gem documentation, check out https://github.com/mkhairi/materialize-sass */

$primary-color: #dd2222 !default;
$secondary-color: #dd2222 !default;
@import "materialize";
@import "bootstrap-sprockets";
@import "bootstrap-datetimepicker";
@import "bootstrap-datetimepicker";
@import "contact";
19 changes: 9 additions & 10 deletions app/assets/stylesheets/assessments.scss
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
@import 'variables';

.badge {
&.blue {
margin-left: 0 !important;
}
&.blue {
margin-left: 0 !important;
}
}

.card-title {
margin-bottom: 0 !important;
margin-bottom: 0 !important;
}

.hover p {
display: none;
display: none;
}

.collection-item:hover {
.hover {
display: block;
}
}
.hover {
display: block;
}
}
2 changes: 1 addition & 1 deletion app/controllers/admins_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def email_instructors

@email = CourseMailer.system_announcement(
params[:from],
make_dlist(@cuds),
make_dlist(@users),
params[:subject],
params[:body]
)
Expand Down
Loading