KernelDeimos
4e3a24e609
fix: check subdomain earlier for /apps
2024-05-28 15:51:22 -04:00
Eric Dubé
c495ccff65
Merge pull request #408 from AtkinsSJ/git-client
...
Add a git client
2024-05-28 12:10:01 -04:00
KernelDeimos
51bac4486f
Add class registry (first pass)
...
In the first pass I add a `register` method and update `defineComponent`
so it calls `register` as well. This made it possible to create a
proof-of-concept for registered classes. Additionally ExportService was
added to expose registered classes to service scripts. This first pass
works, but it would be better if all types of classes (components or
otherwise) were registered via the same method.
2024-05-27 21:16:50 -04:00
KernelDeimos
c0cb1cd2b8
refactor: add GetUserService
2024-05-26 00:31:51 -04:00
KernelDeimos
cbfad2ef7a
refactor(gui): add service scripts
2024-05-24 19:29:07 -04:00
Sam Atkins
03123faa8a
Finish concept JSON parser
...
This now can parse JSON correctly in various configurations.
2024-05-24 16:23:26 +01:00
Sam Atkins
7fccf79591
Make stringOf() take a callback instead of an array of accepted values
...
THe `a.stringOf(' \r\n\t'.split('')),` pattern works fine for small sets
of characters, but is horrible for situations like "any alphanumeric".
Instead, let's make it take a callback function that is run on each
character.
2024-05-24 16:23:26 +01:00
Sam Atkins
d3dff8c20e
Throw errors if parsing fails
...
Not consuming all input is now treated as an error, unless the
`must_consume_all_input` flag is set to false when parsing.
2024-05-24 16:23:26 +01:00
Sam Atkins
0bc4c3fde2
Move StringStream into Parsely
2024-05-24 16:23:26 +01:00
Sam Atkins
873dee7e51
Implement 'trailing' parameter for repeat() parser
2024-05-24 13:30:45 +01:00
Sam Atkins
837ec68371
Reorganize and document Parsely classes
...
- lib.js only holds Parser so rename it parser.js
- Move Symbol and None into terminals.js
- Briefly document all parser classes
2024-05-24 12:26:04 +01:00
Sam Atkins
f8525c6f6c
Rename newparser to Parsely
...
We're going to actually use this so let's give it a more permanent name.
2024-05-24 11:48:34 +01:00
KernelDeimos
a1cfe7aef2
Allow services to register additional js files for gui
2024-05-23 18:41:34 -04:00
KernelDeimos
5042d49935
Simplify debugging runtime config object changes
2024-05-23 18:40:41 -04:00
KernelDeimos
c89b50bf31
Refactor gui loading
2024-05-23 18:13:57 -04:00
Sam Atkins
3184d3482c
feat(phoenix): Implement an exit
builtin
2024-05-23 15:27:15 +01:00
Sam Atkins
5de3052026
feat(phoenix): Respond to exit status codes
...
- Detect exit status of Puter apps, now that that's available.
- Store the exit status of each pipeline.
- Display a message when the exit status was non-zero.
That message is temporary, until we have a better way of displaying or
querying it, such as the `$?` shell variable.
2024-05-23 15:26:43 +01:00
Sam Atkins
7674da4cd2
feat: Add exit status code to apps
...
`puter.exit()` now takes a status code, similar to the exit status on
desktop OSes. This is passed to the appClosed event, so that eg a
parent app can know whether its child app ran successfully.
2024-05-23 12:54:06 +01:00
Eric Dubé
b15dc316d3
Merge pull request #406 from AtkinsSJ/fs-upload-data-type-error
...
Explicitly reject invalid types for puter.fs.upload() and .write() payloads
2024-05-22 12:13:24 -04:00
Sam Atkins
10f715f726
Implement git show
2024-05-22 16:00:42 +01:00
Sam Atkins
0377015190
Implement git config
...
This is also basic:
git config key # To read a value
git config key value # To set a value
git config --unset key # To delete a value
As noted, --list is not possible to implement currently.
2024-05-22 16:00:42 +01:00
Sam Atkins
98c33fb3cc
Implement git log
...
This is quite barebones for now.
Commit formatting is done in a separate file, as this is used by other
git commands, such as `show`.
2024-05-22 16:00:42 +01:00
Sam Atkins
b4e2ba4544
Implement git commit
2024-05-22 16:00:42 +01:00
Sam Atkins
32c172d145
Implement git add
2024-05-22 16:00:42 +01:00
Sam Atkins
5a308a2a53
Implement git status
2024-05-22 16:00:42 +01:00
Sam Atkins
71873a9c27
Add a helper function for finding the git repo
2024-05-22 16:00:42 +01:00
Sam Atkins
5e3db870ec
Implement git init
2024-05-22 16:00:42 +01:00
Sam Atkins
85b7587c42
Implement git help
, git version
, and subcommand infrastructure
...
Each subcommand is its own file, modeled after Phoenix's coreutils.
2024-05-22 16:00:42 +01:00
Sam Atkins
b75c42b39f
Implement Puter filesystem wrapper for git app
2024-05-22 08:56:50 +01:00
Sam Atkins
0d2ffdb380
Add boilerplate for empty git app
...
It does nothing but output a message to the console.
2024-05-22 08:56:50 +01:00
Sam Atkins
8f1c4fcda9
feat(Phoenix): Pass command line arguments and ENV when launching apps
2024-05-22 08:56:50 +01:00
Sam Atkins
bf33fd752d
Remove outdated FIXMEs about consuming extra stdin data
2024-05-22 08:56:50 +01:00
Sam Atkins
c08c8bd073
Expose POSIX error name as PosixError.code
...
This matches the behaviour of Node.JS's errors, and some libraries
expect it.
2024-05-22 08:56:50 +01:00
Sam Atkins
8098dc9dcc
Move error-conversion functions into PosixError
...
Specifically, this makes the Puter->PosixError conversion available to
the in-progress git client.
2024-05-22 08:56:50 +01:00
Sam Atkins
e43b21387c
Move PosixError into puter-js-common
...
The in-progress git client also needs to use this. puter-js-common uses
commonjs modules, so it had to be adjusted for that.
2024-05-22 08:56:50 +01:00
KernelDeimos
1f6a2093fb
Disallow negative size values
2024-05-21 18:46:34 -04:00
KernelDeimos
90463a0732
Add support for webhook endpoints
2024-05-21 17:25:28 -04:00
Karan Parmar
cc45a08388
updated the github links displayed in the Terminal welcome message
2024-05-19 11:52:26 +01:00
KernelDeimos
8cca067991
Fix 8688ha84v
2024-05-17 22:55:40 -04:00
Eric Dubé
80b763c47c
Merge pull request #407 from AtkinsSJ/clean-suggested-apps
...
fix: Remove null or duplicate app entries from suggest_app_for_fsentry()
2024-05-17 15:46:06 -04:00
KernelDeimos
639e40d355
Phoenix shell deployment update
2024-05-17 13:26:44 -04:00
KernelDeimos
f964f06f3f
Fix 8688h4bwg
2024-05-17 13:05:13 -04:00
KernelDeimos
e4543c5f35
Fix 8688ggu00 (2)
2024-05-17 12:32:16 -04:00
Sam Atkins
6900233c5a
fix: Remove null or duplicate app entries from suggest_app_for_fsentry()
2024-05-17 15:34:36 +01:00
Sam Atkins
03fe3b6a0d
Reject invalid types for puter.fs.upload() items or .write() data
...
Previously, this would crash in upload() when trying to iterate the
`entries` array, which is undefined when the `items` parameter is an
unsupported type.
2024-05-17 14:39:31 +01:00
Sam Atkins
a9c89cef19
refactor: Reduce boilerplate for returning errors from puter.fs.upload()
2024-05-17 14:39:31 +01:00
KernelDeimos
c55b1e4680
Remove verification requirement on contact us form
2024-05-16 19:08:51 -04:00
KernelDeimos
e3f57ee20e
Add path builder
2024-05-16 19:02:58 -04:00
KernelDeimos
5031cea040
Update _default.js for deployment purposes
2024-05-16 18:55:59 -04:00
KernelDeimos
49b257ecff
fix(security): Move token for socket.io to request body
...
Currently this commit breaks websocket events and needs to
be updated.
2024-05-16 17:58:44 -04:00
KernelDeimos
f042b095f1
Fix 8688gxkuj
2024-05-16 17:25:41 -04:00
Eric Dubé
f54657a569
Merge pull request #402 from HeyPuter/eric/email-lock
...
Add locking to save_account
2024-05-15 18:49:03 -04:00
Eric Dubé
1aa27084d0
Merge pull request #396 from AtkinsSJ/xterm-fix
...
fix(Terminal): Accept input from Chrome on Android
2024-05-15 18:24:02 -04:00
KernelDeimos
691c8f1436
Add locking to save_account
2024-05-15 18:22:54 -04:00
Eric Dubé
b72e5b7e02
Merge pull request #401 from HeyPuter/eric/service-patches
...
Allow patching services
2024-05-15 15:47:14 -04:00
KernelDeimos
c70e378973
Add error id for expired auth tokens
2024-05-15 15:42:00 -04:00
KernelDeimos
21444daefb
Add jsdoc comments to registerService and patchService
2024-05-15 15:41:37 -04:00
KernelDeimos
2e0d7361cb
Add method to patch services
2024-05-15 15:32:18 -04:00
Eric Dubé
6e0b6d84d2
Merge pull request #400 from AtkinsSJ/fix-apierror-includes
...
fix: Correct APIError imports
2024-05-15 13:51:04 -04:00
Sam Atkins
062e23b5c9
fix: Correct APIError imports
...
APIError is the only thing exported from its file, so we must not wrap
it in {}.
2024-05-15 17:47:15 +01:00
Sam Atkins
a8160a8cdc
fix: Add missing file extension to 0009_app-prefix-fix.sql in DB init
2024-05-15 10:18:28 +01:00
KernelDeimos
0b093dd57e
Revoke other sessions when password is changed
2024-05-14 19:40:57 -04:00
KernelDeimos
923d5878c3
Prevent enable of 2FA without configure
2024-05-14 17:33:14 -04:00
Sam Atkins
4ef3e53de3
fix(Terminal): Accept input from Chrome on Android
...
Xterm.js produces two kinds of events: onKey and onData. On a desktop,
these are effectively the same, but on mobile, IME inputs produce data
but not key presses. By listening to onData instead of onKey, we get
that input.
With some experimentation, I also found that we don't need the code to
handle enter, home, end, or Ctrl-Shift-V. All of these function as
expected without that code, so we can remove it and simplify this
further. :^)
2024-05-14 16:10:30 +01:00
Sam Atkins
2656b47640
chore: Update xterm
...
From version 5.4.0 onwards, xterm scopes its package names as
`@xterm/foo` instead of just `xterm-foo`.
We currently have a copy of xterm.css which we use instead of directly
including the one from the `@xterm/xterm` package, so I've updated the
contents of that too.
2024-05-14 16:10:30 +01:00
Sam Atkins
fafbc292ca
Remove xterm dependency from Phoenix
...
This is used by Terminal, not Phoenix.
2024-05-14 16:10:30 +01:00
KernelDeimos
800aef1942
Implement anti-CSRF for logout
2024-05-13 20:40:27 -04:00
KernelDeimos
da7f73baa6
Add AntiCSRFService
2024-05-13 19:08:51 -04:00
KernelDeimos
afb9d866b5
fix: Fix phoenix app prefix and TokenService test
2024-05-13 18:17:39 -04:00
KernelDeimos
c2f1694107
Require password entry to disable 2FA
2024-05-13 16:00:07 -04:00
KernelDeimos
23215bd6f7
Move change_email/start to password-protected endpoint
2024-05-13 16:00:07 -04:00
KernelDeimos
1493cacb69
Add rate-limiting to new password change endpoint
2024-05-13 16:00:07 -04:00
KernelDeimos
9076fddc0d
Add new password change endpoint
2024-05-13 16:00:07 -04:00
KernelDeimos
a89c9d59cf
Add UserProtectedEndpointsService
2024-05-13 16:00:07 -04:00
KernelDeimos
15dec21118
doc(backend): Document the boot sequence
...
Now that the boot sequence is better formalized it may be documented.
2024-05-13 16:00:07 -04:00
KernelDeimos
d800b12569
refactor(backend): Trigger webserver events in webserver
...
We were triggering webserver events in Kernel. This change improves
adherence to separation-of-concerns and ensures event cascading is
working as expected. This also better formalizes the boot sequence.
2024-05-13 01:05:49 -04:00
Eric Dubé
3992fe1a45
Merge pull request #384 from AtkinsSJ/progress-dialogs
...
refactor: Replace several existing progress dialogs with one configurable one
2024-05-10 12:25:32 -04:00
Eric Dubé
17e08cafce
Merge pull request #380 from AtkinsSJ/eslint-ci
...
Run ESLint on CI
2024-05-10 12:24:31 -04:00
KernelDeimos
cd2daa1910
Require email verification for contact form
2024-05-09 19:40:34 -04:00
KernelDeimos
8b6bbe003d
fix(security) Disable 2FA configure if 2FA is enabled
2024-05-09 18:04:58 -04:00
Sam Atkins
f3269693de
Stop dumping binary data to the console
...
This was freaking out and freezing the Puter server, and my entire
terminal app. XD
2024-05-09 18:28:39 +01:00
KernelDeimos
df24c663df
Invalidate email confirmation on password change
2024-05-08 22:28:41 -04:00
KernelDeimos
45e7f162a2
Add password change notification
2024-05-08 16:01:20 -04:00
Sam Atkins
8c70efa058
Suppress remaining eslint errors
...
These two seem like bugs but are unclear to me how to fix, so I've added
FIXMEs.
/puter/packages/backend/src/routers/kvstore/clearItems.js
41:32 error 'DB_MODE_WRITE' is not defined no-undef
/puter/packages/backend/src/routers/whoami.js
104:35 error 'db' is not defined no-undef
2024-05-08 18:53:36 +01:00
KernelDeimos
5890b7e7bf
Disable password reset token when email or password is changed
2024-05-07 20:18:11 -04:00
KernelDeimos
d20249f29a
Send email notifications when 2FA state changes
2024-05-06 21:13:00 -04:00
KernelDeimos
7f3e2852c6
Add rate limits
2024-05-06 16:12:54 -04:00
KernelDeimos
7fce223a6d
Fix OTP test endpoint
2024-05-06 15:40:34 -04:00
KernelDeimos
a628358c9f
Fix OTP time window
2024-05-06 15:02:14 -04:00
KernelDeimos
918eb3bb67
Put otpauth back on 9.2.4
2024-05-06 02:10:22 -04:00
KernelDeimos
ecae1997aa
Maybe this??
2024-05-06 01:58:55 -04:00
KernelDeimos
e4c7caa8ea
Worth a try
2024-05-06 01:54:02 -04:00
KernelDeimos
00c8ece07e
Finish recovery codes
2024-05-06 00:02:46 -04:00
KernelDeimos
5cbe256120
Add missing part of previous commit
2024-05-06 00:02:46 -04:00
KernelDeimos
a2a8f9de74
Fix cache state
2024-05-06 00:02:46 -04:00
KernelDeimos
3e380ba844
Add otp test endpoint and next wizard step
2024-05-06 00:02:46 -04:00
KernelDeimos
2681a78501
Use username as otp label
2024-05-06 00:02:46 -04:00
KernelDeimos
3bf7737790
Add recovery codes
2024-05-06 00:02:46 -04:00
KernelDeimos
455d3946d6
Add checkboxes and cancel action for 2FA setup
2024-05-06 00:02:46 -04:00
KernelDeimos
2dfecb5287
Add 2fa setting and complete login flow
2024-05-06 00:02:46 -04:00