Commit Graph

2800 Commits

Author SHA1 Message Date
Jonathan Rainville 12b3411ee2
change colors and add command to process scss 2018-10-23 11:01:11 +02:00
Andre Medeiros 428f591330
Don't send token in request body.
Instead, we want to hash a header to sign a request with a client nonce,
http method and URL. This is a first step towards protecting the backend
against eavesdropping.

Please note that this will still be susceptible to replay attacks.
2018-10-23 11:01:11 +02:00
Iuri Matias 70b62bdc16
rename command_suggestions to commandSuggestions 2018-10-23 11:00:28 +02:00
Iuri Matias 0379f6bc35
use fuzzy to do search; but still do sorting 2018-10-23 11:00:28 +02:00
Iuri Matias 2453d686eb
use existing api instead of creating a new plugin 2018-10-23 11:00:27 +02:00
Iuri Matias f787e6be3c
fix identation issues 2018-10-23 11:00:27 +02:00
Iuri Matias 6f0be96243
add more commands to suggestions & improve sorting 2018-10-23 11:00:26 +02:00
Iuri Matias 1906b17c5d
fix options update; add sorting 2018-10-23 11:00:26 +02:00
Iuri Matias ce19fd96c4
intiial code to get suggestions from embark 2018-10-23 11:00:26 +02:00
Richard Ramos 60bb3b5b4a
Capitalizing contract filename 2018-10-23 10:59:19 +02:00
Anthony Laibe 695b2980e6
Feature conflict
Information where missing in contract show
2018-10-23 10:59:18 +02:00
emizzle 7b784b9618
Missing pieces for adding log limit 2018-10-23 10:59:18 +02:00
emizzle 145f376000
Add LOG_LIMIT to limit max log response size
Re-adds the log limit feature that limits the log size coming back from embark

Also adds the log limit to other process logs (ie blockchain).
2018-10-23 10:59:18 +02:00
emizzle 7690418bb1
Regexp support for node 8.9.4+
Changed the log regexp to remove named capture groups as this is only supported in 10.3+.
2018-10-23 10:59:17 +02:00
Iuri Matias 1c59701045
fix wording 2018-10-23 10:59:17 +02:00
Iuri Matias 085a282c96
add copytoken command 2018-10-23 10:59:17 +02:00
Richard Ramos 16499e0bb0
Array handling 2018-10-23 10:59:16 +02:00
Iuri Matias 65c7428a7f
comment out log code for now 2018-10-23 10:59:16 +02:00
Jonathan Rainville e6964c75cb
return error message on console error 2018-10-23 10:59:16 +02:00
Richard Ramos 939642f74c
Validation of datatypes + small refactoring 2018-10-23 10:59:16 +02:00
Richard Ramos d6de374ce7
Adding scaffold option to generate contract from scratch 2018-10-23 10:59:16 +02:00
Anthony Laibe 4b2715421d
Adding tab to contract view 2018-10-23 10:59:15 +02:00
Pascal Precht be3c792144
refactor(modules/whisper): use ProcessManager APIs to launch process 2018-10-23 10:58:33 +02:00
Pascal Precht 3dd28b9459
refactor(modules/webserver): use ProcessManager APIs to start and stop the server 2018-10-23 10:58:33 +02:00
Pascal Precht 188a688264
refactor(modules/ipfs): use ProcessManager APIs to register and launch IPFS process
ProcessManager can be used to "register" processes and along with it, a launch function
that will be executed when a process is requested to launch.

Prior to this commit the IPFS process has not be registered and launching the process
was done manually, bypassing ProcessManager APIs.

With this commit we take advantage of ProcessManager APIs to register the IPFS process
and launch it using the `process:launch` event.
2018-10-23 10:57:54 +02:00
Pascal Precht 64d8fa3368
feat(core/processManager): introduce `processes:stop` handlers
So far, `ProcessManager` was able to only register a `process:launch` handler.
There was no way to tell `ProcessManager` how to stop processes. This hasn't
been a problem so far as most of the service processes can be started without the usage
of the `ProcessManager`, but turns out to be necessary if we want Embark UI to be able
to pick up running services.

A good example is the webserver process, which until now bypasses the `ProcessManager`
all together. The webserver sets up two event handlers to start and stop it respectively:

```
this.events.setCommandHandler('start-webserver', () => this.server.start());
this.events.setCommandHandler('stop-webserver', () => this.server.stop());
```

In the future, this should happen through the `ProcessManager` instead, so the webserver
process can be picked up by Embark UI, like this:

```
this.request('process:register', 'webserver', () => {
  this.server.start();
});

// and then

this.request('process:launch', 'webserver', () => {
  // server started
});
```

Notice that the given callback to registering a process is actually the function that
gets called to launch the process.

Having that in mind, and considering that we also need a way to stop the process through
`ProcessManager, so we don't introduce a regression, we need a way to register a stop
call back as well.

The new API introduced in this commit looks like this:

```
this.request('process:register', 'webserver', {
  launchFn: (callback) => { this.server.start(callback) },
  stopFn: (callback) => this.server.stop(callback) }
});

// and then

this.request('process:launch', 'webserver', (err, message, port) => {
  // server started
});

this.request('process:stop', 'webserver', err => {
  // server stopped
});
```

Notice that `process:register` works exactly the same way as before as well.

Another thing to notice is that all parameters emitted by the underlying process
are propagated to the outside caller, which is why `err`, `message` and `port` are
available inside the launch callback.
2018-10-23 10:57:05 +02:00
Anthony Laibe de009db74f
Use process log ids 2018-10-23 10:57:05 +02:00
emizzle 46511bcfe8
Rebase updates
After the code was rebased, there were some additional changes for getting websockets logs that needed to be catered for.

When there is a call to get all logs for a process, the state entity is updated with a new array item containing all the logs (this is then reduced and selected for rendering). In the case of a websocket log that simply returns only one log item, the latest full log for the process is found in the state entities, and it’s logs are appending to with the data from the websocket.

Additionally, log limits were updated to be passed in as a parameter to the API calls from the frontend. Parameter validation (for `limit`) was also added in this commit.
2018-10-23 10:57:04 +02:00
emizzle d4d7e3b8ac
Addressed PR comments
*Console.js*
- Moved `DEFAULT_PROCESS` const to outside of the `Console` class (but inside the module).
- Removed `(` and `)` from `.filter` in `getProcessLogs()`.
- Updated comments

*logger.js*
- Moved `dateFormat` and `logRegex` to constants outside of `Logger` class
- Moved the `parseLogFile` method inside of the `Logger` class (ES6 style)
- Added a log limit to the `parseLogFile` method
- Added the log path to the constants file and used inside of `Logger`

*cmd_controller.js*
- Defaulted `this.context` to `[constants.context.any]` in the constructor.
- Changed `’embark’` to split modules`coreProcess` and `loggerApi`.

*engine.js*
- Changed `’embark’` to split modules`coreProcess` and `loggerApi`.
2018-10-23 10:57:04 +02:00
emizzle 0760965bda
Overwrite log file so .embark doesn’t bloat
The embark log file is being overwritten each time embark is run. There is a separate log file for each context, so that running, for example, `embark run` then `embark console` doesn’t get the `run` log overwritten with the `console` log.
2018-10-23 10:54:35 +02:00
emizzle 7de72cb474
Addressed PR feedback
- Created an “embark” module so that an “embark” process could be registered in the correct way. This service is only used on `embark run` (can be extended to other commands if needed).

- extracted “embark” to a const `DEFAULT_PROCESS` param in the `Console` component.

- extracted commands result rendering to it’s own function to keep the `renderTabs` function from getting cluttered

- Added sorting of logs by timestamp

- Added milliseconds to the log file data (which helps in sorting log messages).
2018-10-23 10:53:25 +02:00
emizzle 42cc9b559f
Fills embark logs tabs with existing embark logs
A logfile is now generated by default, in the format `.embark/embark-log__YYYY-MM-DD_HH-mm-ss.log`.

When the home tab is loaded, the process logs are fetched for all the processes. The list of processes returned now includes `embark`, and when `/embark-api/process-logs/embark` is fetched, the logFile is parsed and an array of log messages are returned.
2018-10-23 10:52:26 +02:00
Anthony Laibe 41eb23df82
Adding file contracts 2018-10-23 10:51:24 +02:00
Pascal Precht de901b73fc
chore(modules/storage): make process launcher callback optional
We aren't always interested in calling a function after the storage
process has been launched, so passing a callback should be optional.
2018-10-23 10:50:41 +02:00
Anthony Laibe 41176f0f70
Add id to process logs 2018-10-23 10:50:41 +02:00
emizzle aa4bc0fe4d
Fix for logs showing a string as an array
Some strings were being logged as
```
[w,r,i,t,i,n,g, ,f,i,l,e, ,,[,2,m,,[,1,m,.,e,m,b,a,r,k,/,s,t,a,t,s,.,r,e,p,o,r,t,,[,2,2,m,,[,2,2,m]
```
The fix was applied to the `normalizeInput` method which simply returns if the input was a `typeof` string.
2018-10-23 10:50:40 +02:00
Anthony Laibe 5967aa3dc5
Initial version of deployment manager 2018-10-23 10:50:39 +02:00
emizzle 72a796c11b
Moved `fileTreeSort()` to `utils` 2018-10-23 10:50:39 +02:00
emizzle 35a701fb90
Addressed PR comments
Updated comments in `FileExplorer.js`

Moved `isFolder()`, `isNotFolder()`, and `byName()` outside of `fileTreeSort()` in `lib/pipeline/pipeline.js`.
2018-10-23 10:50:39 +02:00
emizzle f3431eecbd
File editor tree improvements
Sort files and folders by type, then by name

Hide hidden files/folders (starting with “.”) - WIP
2018-10-23 10:50:39 +02:00
Anthony Laibe 0e4248cca8
Stop and limit fetch process logs 2018-10-23 10:50:38 +02:00
Iuri Matias fd2e979f06
remove unneded console logs 2018-10-23 10:50:37 +02:00
Richard Ramos 2c0644b5cb
Changed scaffolding to service 2018-10-23 10:50:37 +02:00
Richard Ramos e5e8d21765
Installing react packages automatically 2018-10-23 10:50:04 +02:00
Richard Ramos deb9c9a838
Changed state handling on template and engine initialization 2018-10-23 10:50:03 +02:00
Richard Ramos d3961783b4
Changing promises to async and created consts 2018-10-23 10:50:03 +02:00
Richard Ramos b93d2d1145
Error handling, added overwrite, fixed duplication of components 2018-10-23 10:50:03 +02:00
Jonathan Rainville 13160e622f
fix ALL of the spaces 2018-10-23 10:50:02 +02:00
Jonathan Rainville 211321a914
fix event 2018-10-23 10:48:36 +02:00
Jonathan Rainville 328d9c7c07
remove blockcing if 2018-10-23 10:48:36 +02:00