Yoti Password Manager 版本紀錄 - 3 個版本
Yoti Password Manager 作者: Nigel C、 Julian
Yoti Password Manager 版本紀錄 - 3 個版本
小心舊版本!這些版本只是提供來測試與參考用。您應該隨時用最新版的附加元件。
最新版本
版本 1.12.6
發行於 2022年8月3日 - 1.64 MB適用於 firefox 48.0 與更新版本Redesign of the desktop browser extension
Ability to export passwords原始碼依照 保留所有權利 條款釋出
下載 Firefox 並安裝擴充套件必須使用 Firefox 才能使用此擴充套件較舊版本
版本 1.12.4.2104
發行於 2021年6月3日 - 1.53 MB適用於 firefox 48.0 與更新版本Updating a library
Changing "Contact Us" URL版本 1.12.3.2096
發行於 2020年8月27日 - 1.53 MB適用於 firefox 48.0 與更新版本# yoti-upm-browser
Universal Password Manager browser extension code
The codebase consists of three parts:
- **Content script** runs on every page which loaded in the browser and interact with them
- **Popup pages** contains the extension settings and feature pages
- **Background script** running in the background and orchestrating communication between the different components and the backend
### Content script
Responsible to scan all the loaded pages in the browser and search for username and password fields. If field is found then tries get the user info from the server to fill it out the form and places the yoti logo inside form field. Clicking on the icon inside the form fields should show a context menu for the page helping the user to fill out the forms with the proper values.
### Popup pages
Main entry point to UPM. It authenticates the user, shows the QR Code, the password generator page, list of stored pwd, etc...
### Background script
One instance is running inside of the browser and is responsible for the communication between the popup, the content script and servers. Handles:
- sesssion timeout
- communication with the backend services (content cloud, channel service)
- hook into webrequests
- sends messages between the content script and popup pages
## Development notes
This application uses preact with `preact-compat`.
`babel-module-resolver` is used to not overuse relative paths (`../../../../../`).
Instead @aliases are provided.
List of current aliases:
- @shared: ./src/shared,
- @utils: ./src/shared/utils,
- @components: ./src/shared/components,
- @popup: ./src/popup
Example usage:
`import SomeComponent from '@components/SomeComponent';`
To modify aliases change `.babelrc` and `jsconfig.json` files.
_Note: `@yoti` is not an alias, but an npm module!_
### Coding style
- Linting suggestions with `eslint` - airbnb-based rules
- Auto-formatter with `prettier`, applied at:
- pre-commit, only for the staged files (see `lint-staged`)
- at save (if you have prettier extension inside your code editor and `formatOnSave` set to true)
**Note** More strict CSS rules could be applied with `stylelint`.
### Before first run:
- install bower globally (`npm install -g bower`)
- `npm ci`
- `bower update`
- `node_modules/gulp/bin/gulp.js proto-compile` _(This will genereate `popup/generated/*` files)_
### Build
- node_modules/gulp/bin/gulp.js --env <staging/preprod/production/test> --browser <firefox/chrome> --cc <content_cloud_url> --cs <channel_service_url> --portal <portal_url> --code <code_url> --watch
##### parameters
- --watch: optional, will run build in watch mode (rebuild automatically whenever files change)
- --env: optional, if not provided the default is development. values: staging/preprod/production/test
- --browser: for which browser to build. The default is chrome. values: firefox/chrome
- --cc: content cloud url. Must be set according to environment
- --cs: channel service url. Must be set according to environment
- --portal: portal url. It is now the same across environments
- --code: yoti code site url. Must be set according to environment
### Production build
Production build takes the pre-prod build from concourse and updates the configuration to production.
- node_modules/gulp/bin/gulp.js create-prod-release --cc <content_cloud_url> --ppd <pre_prod_zip_input> --prod <prod_output> --cs <channel_service_url> --portal <portal_url> --code <code_url>
##### parameters
- --ppd: path to pre-prod zip file used as input
- --prod: path to prod output zip file
- --browser: for which browser to build. values: firefox/chrome
- --cc: content cloud url. Must be set according to environment
- --cs: channel service url. Must be set according to environment
- --portal: portal url. It is now the same across environments.
- --code: yoti code site url. Must be set according to environment
### Run tests
- npm test
You can also debug a specific test with:
- `node --inspect-brk node_modules/.bin/jest --runInBand YOUR_TEST.js --config jest-config.json`
The chrome extension **Node.js V8 --inspector Manager** can then automatically open a Chrome DevTools tab for you.
Breakpoints in your test can be added with `debugger`
## Other gulp tasks
### Generate change log
Generated changelog from the commit names. Gets the ticket number from the commit names, the tries to grab the ticket from jira
- node_modules/gulp/bin/gulp.js change-log --from <tag/commit_hash> --to <tag/commit_hash> --username <jira_username> --password <jira_password>
##### parameters
- --from: the start commit hash or tag name (for example: 1.0.1)
- --to: optional and the default is HEAD. The end commit hash or tag name (for example: 1.0.2)
- --username: username for jira
- --password: password for jira